列表加上表头
- awk 'BEGIN {print "ID\tTime"}{printf("%s\t%s\n",$1,$2)}' arr.dat
输出结果:
- ID Time
- 1034 7:26
- 1025 7:27
- 1101 7:32
- 1006 7:45
- 1012 7:46
- 1028 7:49
- 1051 7:51
- 1029 7:57
- 1042 7:59
- 1008 8:01
- 1052 8:05
- 1005 8:12
- 1005 8:13
- 1005 8:13
- 1005 8:13
如果我们要将ID重复的去除,并附加上表头该怎么写呢?
试下如下的程序:
- awk 'BEGIN {print "ID\tTime"}{printf("%s\t%s\n",$1,$2)| "sort -k1,1 -u -r"}' arr.dat
好长的一行,看一下输出结果:
- ID Time
- 1101 7:32
- 1052 8:05
- 1051 7:51
- 1042 7:59
- 1034 7:26
- 1029 7:57
- 1028 7:49
- 1025 7:27
- 1012 7:46
- 1008 8:01
- 1006 7:45
- 1005 8:12
果然按ID进行了倒排序,并附加上了表头,ID也去重了。上面的这个例子算是比较复杂了,程序依次干了下面的事:
- 在文件处理之前输出了表头
- 将第一列和第二列格式化输出
- 将第二步的输出结果通过管道交由sort命令进行去重排序
转载于:https://blog.51cto.com/ustb80/1033628