0
我有一个文件,该文件是这样的:排序不分先后在AWK数组
1 a
3 b
2 b
9 a
0 a
5 c
8 b
我想...
- 只打印每个最后一个实例在第2列中出现的元素及其在第1列中的相应值;
- 按字母顺序排序1的结果,根据第2列的内容;
- 将第三列添加到第1列之前的输出,该内容将取决于第2列的值;
- 用回车替换标签;
......所有这些都在一个awk程序中。
所以,最后的结果将是这样的:
x
0
a
x
8
b
y
5
c
我赢得成功做这一切,但使用两个awk程序和一个外部命令:
awk -F '\t' '{
value[$2]=$2"\t"$1 }
END { for (i in value) print value[i]
}' | \
sort -dfb | \
awk -F '\t' '{
if ($1 == "a" || $1=="b") print "x\n"$2"\n"$1
if ($1 == "c") print "y\n"$2"\n"$1
}'
更简单的方法来做到这一点会按照字母顺序对第一个awk程序的数组进行排序。这将允许合并第一个awk程序的内容。但是,我不知道我该如何做到这一点。任何想法 ?