1

p.txt の使用:

$cat p.txt
R 3
R 4
S 1
S 2
R 1
T 1
R 3

次のコマンドは、2 番目の列に基づいて並べ替えます。

$cat p.txt | sort -k2
R 1
S 1
T 1
S 2
R 3
R 3
R 4

次のコマンドは、2 番目の列で繰り返される値を削除します。

$cat p.txt | sort -k2 | awk '!x[$2]++'
R 1
S 2
R 3
R 4

sapce にコンマを挿入すると、次のファイルが作成されます。

$cat p1.csv
R,3
R,4
S,1
S,2
R,1
T,1
R,3

次のコマンドは、2 番目の列に基づいて並べ替えます。

$cat p1.csv | sort -t "," -k2
R,1
S,1
T,1
S,2
R,3
R,3
R,4

以下は正しい出力ではありません。

$cat p1.csv | sort -t "," -k2 | awk '!x[$2]++'
R,1

正しい出力:

R,1
S,2
R,3
R,4

助言がありますか?

4

4 に答える 4

4

awk -F,最後のコマンドを試してください。そう:

cat p1.csv | sort -t "," -k2 | awk -F, '!x[$2]++'

フィールドはコンマで区切られているため、フィールド区切り文字が空白ではなくコンマであることを awk に伝える必要があります。-Fawkのオプションはそれを行います。

于 2013-05-23T18:02:32.677 に答える
1

フィールドセパレーターを提供する必要がありますawk

 cat p1.csv | sort -t "," -k2 | awk -F, '!x[$2]++'
于 2013-05-23T18:03:20.617 に答える