sort -k1,1 file.txt
次のようにファイルの最初のフィールドでsortコマンドを実行します。
1,2,3
2,1,1
10,2,1
私にしてください:
1,2,3
10,2,1
2,1,1
変える:
1,2,3
2,1,1
10,2,1
私は2前に10が欲しくありません。これを行う方法はありますか?
ベストアンサー1
説明したようにman sort
:
-n, --numeric-sort
compare according to string numerical value
だからあなたは以下が欲しい:
$ sort -nk1,1 file
1,2,3
2,1,1
10,2,1
さらに、デフォルトではフィールドはスペースで区切られているため、このファイルのこれらの行にはフィールドが1つしかありません。たとえば、最初の行の最初のフィールドは1,2,3
ではありません1
。-t ,
フィールドを追加する必要があります,-separated
。
sort -t, -nk1,1 file
-n
を使用すると、sort
ソートキーの先頭に有効数字を形成する文字シーケンスのみが考慮されます(先行スペースは無視されます)。最初の行の場合、Noneは実装とロケール-t,
によって(ユーザーの小数点区切りがある場合)、または(ユーザーの1000区切りがある場合)として扱われ、その項目はすべて無視されます。sort
1,2,3
1
1.2
,
123
,
sort