1

いくつかのアドレスと管理者コードを含む .csv ファイルがあります。最後の列(英国の郵便番号)で並べ替えたい。最後の列を最初に移動してから を使用してファイルを並べ替えようとしていますがsort、奇妙な問題が発生しています。データの一部を次に示します。

$ head T201311ADDR\ BNFT.CSV 
201311,A81001,THE DENSHAM SURGERY                     ,THE HEALTH CENTRE        ,LAWSON STREET            ,STOCKTON                 ,CLEVELAND                ,TS18 1HU
201311,A81002,QUEENS PARK MEDICAL CENTRE              ,QUEENS PARK MEDICAL CTR  ,FARRER STREET            ,STOCKTON ON TEES         ,CLEVELAND                ,TS18 2AW
201311,A81003,THE GALLAGHER PRACTICE                  ,THE HEALTH CENTRE        ,VICTORIA ROAD            ,HARTLEPOOL               ,CLEVELAND                ,TS26 8DB
201311,A81004,WOODLANDS ROAD SURGERY                  ,6 WOODLANDS ROAD         ,                         ,MIDDLESBROUGH            ,CLEVELAND                ,TS1 3BE 
201311,A81005,SPRINGWOOD SURGERY                      ,SPRINGWOOD SURGERY       ,RECTORY LANE             ,GUISBOROUGH              ,                         ,TS14 7DJ

最後の列を取得できます。

$ head T201311ADDR\ BNFT.CSV | awk -F ',' 'BEGIN {OFS = ","} {print $NF}' 
TS18 1HU
TS18 2AW
TS26 8DB
TS1 3BE 
TS14 7DJ

しかし、行に何か他のものを印刷すると、上書きされます。

$ head T201311ADDR\ BNFT.CSV | awk -F ',' 'BEGIN {OFS = ","} {print $NF, $2}' 
,A81001U
,A81002W
,A81003B
,A81004 
,A81005J
,A81006T
,A81007W
,A81008 
,A81009 
,A81011W

明らかに役に立たない。編集したばかりのテスト ファイルを使用してみましたが、この動作が見られないため、この特定のファイルに関係があります。助言がありますか?一部の改行文字に関する既知の問題はありますか? 私は Mac で作業していますが、ファイルは PC からのものであると思われます。イギリスのNHSのデータです。

4

1 に答える 1

2

ファイルに奇妙な (Windows の) 文字が含まれている可能性があります。これを試してください。

cat -vet yourfile

キャリッジ リターンがどのように表示されるか ^M を探します。次に例を示します。

cat -vet file
I came from Windows-world ^M$
so did I ^M$

または、次のものしか持っていない、または好む場合sed

sed -ne "l"  file
I came from Windows-world \r$
so did I \r$

で奇妙な文字を削除できますtr。キャリッジ リターン (\r) を削除するには、次のようにします。

tr -d '\r' < inputfile > outputfile
于 2014-03-28T10:01:35.110 に答える