私はこれを試しました:
$ echo "2,3435,1" | sort -n
2,3435,1
$ sort -t',' -n test_sort.txt
kill,gill,burger
110,20,30,13
$ cat test_sort.txt
110,20,30,13
kill,gill,burger
私のsort
コマンドが機能しないのはなぜですか?
私が望むコマンドはsort
次のように動作するはずです。
$sort -t',' -n test_sort.txt
110,13,20,30,burger,gill,kill
答え: tr , '\n' < a | sort -n 貼り付け、 -
「スティーブン・チャジェラスに感謝します」
ベストアンサー1
sort
ライン全体を走る。デフォルトでは、行の内容全体をソートしますが、-k
その行内の1つ以上のフィールドをソートするためにも使用できます。 -t
フィールド間の区切り文字を変更するために使用できます。使用せ-t
ずに使用することが-k
意味のある状況は考えられません。
2番目のコマンドは次のとおりです。
printf "%s\n%s\n" "110,20,30,13" "kill,gill,burger" | sort -t',' -n
生産する:
kill,gill,burger
110,20,30,13
これがまさに私が期待したものです。 -t','
個々のフィールドに対してソート操作を指示しないと、フィールド区切り文字が変更され、数値がゼロ(および数値ソート要求を使用したため)以前にソートされたため、k
何の効果もありません。1
-n