我有以下文件格式:
AAA-12345~TRAX~~AAAAAAAAAAAA111111ETC
AAA-12345~RCV~~BBBBBBBBBBBB222222ETC
BBB-78900~TRAX~~CCCCCCCCCCCC444444ETC
BBB-78900~RCV~~DDDDDDDDDDDD555555ETC
CCC-65432~TRAX~~HHHHHHHHHHHH888888ETC
所有线都是成对的,每对都是相同的单一〜。 有时像最后一个记录的孤儿有TRAX但没有RCV。 问题是:使用像sed或awk这样的bash实用程序或像grep或cut这样的命令我怎么才能找到并只显示孤儿?
答案 0 :(得分:0)
使用awk
:
awk -F~ '{a[$1]+=1} END{for(key in a) if(a[key]==1){print key}}'
这只是加载第一个字段(由波浪号分割)作为数组的键,并在每次找到时递增该键的值。然后,当文件完成后,它会迭代数组并打印出只有1的键值。