1

我有一个带有@blabla 指定标题的文件-不同的文件具有不同数量的标题行,但它们都通过@ 符号指定标题行。

IE,

@HI this is header line 1
@Bye this is header line 2
2 210 hi 1300 hl df de
9 179 hi 110 hl df de
2 190 hi 1310 hl df de
9 134 hi 190 hl df de

在标题之后,文件以制表符分隔。

任何人都知道在 linux 中对该文件进行排序的快速/简单方法(可能使用 sort 命令)。

我想按第 1 列(然后是第 4 列)对其进行排序,但将标题保留为排序版本中的标题。

帮助将不胜感激!

谢谢!

4

2 回答 2

2

您可以删除标题,排序然后添加标题

$ grep '^@' foo > foo.sorted; grep -v '^@' foo | sort --key=2,4 >> foo.sorted
$ cat foo.sorted 
@HI this is header line 1
@Bye this is header line 2
9 134 hi 190 hl df de
9 179 hi 110 hl df de
2 190 hi 1310 hl df de
2 210 hi 1300 hl df de
于 2013-04-19T22:50:43.013 回答
-2
awk 'NR<=2{print}NR>2{print|"sort -t\"    \" -k1,1n -k4,4n"}' foo.txt
于 2015-03-22T19:21:21.393 回答