我有一个带有@blabla指定标题的文件 - 不同的文件具有不同数量的标题行,但它们都通过@符号指定标题行。
即,
@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列)对其进行排序,但将标题保留为排序版本中的标题。
帮助将不胜感激!
谢谢!
答案 0 :(得分: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
答案 1 :(得分:-2)
awk 'NR<=2{print}NR>2{print|"sort -t\" \" -k1,1n -k4,4n"}' foo.txt