2009-07-07 50 views
5


我有一個文件,它有多列,空白分隔。 e.g:如何按列對內容進行排序?

 
data1    data2   data3    data4 
val1    val2   val3     val4 

我需要一段時間基於COL2的價值等的某個時候根據列1的值在不同的列基於價值觀的文件,即排序。

我想到了排序命令,但無法弄清楚如何使用它來實現這一點。

感謝名單,

+0

所以,你要找到合適的Unix命令

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

或者使用或以編程方式做到這一點,例如c ? – anderstornvig 2009-07-07 10:22:47

回答

10

如果你放棄了對地方排序很簡單:

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

thanx ,,,它是-k選項..還有一件事可以使用列分隔符而不是空間.. – sud03r 2009-07-07 10:28:08

2

排序有內置的「鑰匙」,這是用於線路部分的理解做比較。默認情況下,關鍵是整行,但是這可以通過使用-k選項改變:

示例:要排序的第二字段中,使用--key=2,2' ( -k 2,2' )。

默認情況下,按鍵由非空白字符和空白字符之間的轉換分隔。

0

排序就地文件,嘗試VIM路:-o參數像sort -k1 in.txt -o out.txt