19

このファイルを 4 列目に基づいて並べ替えようとしています。4 列目の値に基づいてファイルを並べ替えます。

ファイル:

2   1:103496792:A   0   103496792
3   1:103544434:A   0   103544434
4   1:103548497:A   0   103548497
1   1:10363487:T    0   10363487

私はそれを次のようにソートしたい:

1   1:10363487:T    0   10363487
2   1:103496792:A   0   103496792
3   1:103544434:A   0   103544434
4   1:103548497:A   0   103548497

私はこのコマンドを試しました:

sort -t$'\t' -k1,1 -k2,2 -k3,3 -k 4,4 <filename>

しかし、不正な変数名エラーが発生します。誰かがこれで私を助けることができますか?

4

2 に答える 2

47

4 番目の列で並べ替えるには、-k 4,4セレクターのみを使用します。

sort -t $'\t' -k 4,4 <filename>

-V数値をより自然に並べ替える whichも必要になる場合があります。たとえば、(辞書順)1 2 10ではなく譲歩します。1 10 2

sort -t $'\t' -k 4,4 -V <filename>

に関するエラーが発生する場合は$'\t'、シェルが bash であることを確認してください。おそらく#!/bin/bash、スクリプトの先頭に行方不明ですか?

于 2013-07-02T16:12:27.807 に答える