UNIXでsortコマンドの使い方を説明してください

UNIXでsortコマンドの使い方を説明してください

私は UNIX 初心者です。sortコマンドを説明してください。ソート フィールドの区切り記号に関して疑問があります。例: sort -k2, 2 filename、明確にしてください。簡単な例を示してください。

答え1

構文エラーがあります。オプションsort -k2, 2 filenameにはスペース区切り文字を使用しないでください-k2,2。さらに、辞書順序または数値ソート オプションのいずれかをコマンドに追加して、どのようにソートするかを明示的に指定すると、混乱やエラー (ソートするファイルの内容によって異なります) の原因が排除されます。

cat unsorted-file.txt # original unsorted file
9 8 7
6 55 44
3 2 1

sort -k1 -n unsorted-file.txt # example 1
3 2 1
6 55 44
9 8 7

sort -k3 -n unsorted-file.txt # example 2
3 2 1
9 8 7
6 55 44

sort -k1,3 -n unsorted-file.txt # example 3
3 2 1
6 55 44
9 8 7

sort -k2,3 -n unsorted-file.txt # example 4
3 2 1
9 8 7
6 55 44

説明

デフォルトでは、フィールド区切り文字は非空白から空白に遷移します。KEYDEF
-k開始位置と終了位置を表す F[.C][OPTS][,F[.C][OPTS]] です。ここで、F はフィールド番号、C はフィールド内の文字位置です。どちらも起点が 1 で、終了位置はデフォルトで行末になります。-
-k1最初のフィールド
-k3- 3 番目のフィールド
-k1,3- 最初のフィールドを開始し、3 番目のフィールドを停止
-k2,3- 2 番目のフィールドを開始し、3 番目のフィールドを停止
-n- 文字列の数値に従って比較

関連情報