cat a.txt
12 34 56
78 90 12
23 45 89
要求得到如下:
1 12 78 90 12
2 56 12 34 56
3 89 23 45 89
12 34 56
78 90 12
23 45 89
要求得到如下:
1 12 78 90 12
2 56 12 34 56
3 89 23 45 89
# awk '{a[$NF]=$0}END{l=asorti(a,b);for (i=1;i<=l;i++) print i"\t"b[i]"\t"a[b[i]]}' a.txt
如果a.txt中文件 有重复的
如
# cat a.txt
12 34 56
78 90 12
90 78 12
23 45 89
使用 # awk '{a[$NF]=$0}END{l=asorti(a,b);for (i=1;i<=l;i++) print i"\t"b[i]"\t"a[b[i]]}' a.txt 得到的结果少了一行 。
如下:
awk '{a[$NF]=$0}END{l=asorti(a,b);for (i=1;i<=l;i++) print i"\t"b[i]"\t"a[b[i]]}' a.txt
1 12 90 78 12
2 56 12 34 56
3 89 23 45 89
换个思路:
# sort -k 3 a.txt | awk '{print NR"\t"$NF"\t"$0}'