SORT コマンドを使用して、5 番目の列に基づいて表形式のファイルを並べ替えたいのですが、3 番目の列にいくつかの値がありません。また、-k5,5 では sort コマンドが正しく動作しないことに気付きましたが、-k1,1 または -k2,2 では問題ありません。欠損値が原因ですか?
質問する
1350 次
2 に答える
5
デフォルトでsort
は、空白文字の後に空白文字以外の文字が続く場合は常にフィールドが始まると考えられます。たとえば、このスニペットでは:
a b c d
e f g
最初の行には 4 つのフィールドがあり、2 番目の行には 3 つのフィールドがあります。
別のセパレータを使用する場合は、オプションを使用して指定でき-t
ます。たとえば、タブをセパレータとして使用するには、次のように記述できます。
sort -t $'\t' -k 5,5
これsort
により、空のフィールドを検出できます (2 つの連続したタブは、間に空のフィールドがある 2 つの異なる区切り記号として解釈されるため)。
于 2013-01-11T21:53:02.983 に答える
0
列が欠落している場合は、データが固定形式であると推測されます。つまり、次のようにテキストが整列されています。
1 2 3
2 23 12345
またはこれ
1 2 3
2 23 12345
これよりも
1 2 3
2 23 12345
それが本当なら、入力に実際には表示されないタブ文字を使用して、-t/ -k1.20
列 20 から始まる文字でソートするようなキーで現在の単一フィールドをソートできます。
于 2013-01-11T21:57:34.497 に答える