2009-07-07 8 views
5


空白で区切られた複数の列を持つファイルがあります。 は、例えば:ファイルの内容を列単位で並べ替える方法は?

 
data1    data2   data3    data4 
val1    val2   val3     val4 

私はいつか、カラム1の値に基づいて、すなわちいつかようにCOL2の値に基づいて、異なる列の値に基づいてファイルをソートする必要があります。

私はソートコマンドを考えましたが、これを達成するためにそれを使用する方法を理解できませんでした。

ありがとう、

+0

よう-oパラメータを使用します? – anderstornvig

答えて

10

あなたの場所に並べ替えをあきらめる場合、それは簡単です:

sort -k 1 original > by_col_1 
sort -k 2 original > by_col_2 
+0

thanx ,,, -kオプションです。スペース以外のカラムセパレータでもう1つ動作します。 – sud03r

+1

はい、-tオプションを使用します。 * man sort *をチェックしてください。 –

2

ソートが組み込まれているために使用されるラインの一部である「鍵」、の理解比較を行う。デフォルトでは、キーは行全体であるが、これは-kオプションで変更することができます。

例:--key=2,2' ( -k 2,2' を使用し、2番目のフィールドでソートするには)。

デフォルトでは、キーは非空白と空白の間のトランジションで区切られています。

0

VIM-方法を試し、その場でファイルをソートするに:

$ ex -s +'%!sort -k1' -cxa file.txt 

またあなたが右のUnixコマンドを見つけるために、またはでプログラムそれをやりたい、Cが言うsort -k1 in.txt -o out.txt

関連する問題