我有一个像这个例子的文件:
cat dog
mouse cat
dog cat
dog mouse
我想要的是删除包含相同单词但顺序相反的那些行,在这种情况下我想要“猫狗”而不是“狗猫”。在真实文件中,我有大量的单词(交互),我想删除冗余(我正在使用单向交互)。因此,我希望这样做:
cat dog
mouse cat
dog mouse
我尝试了这个,但它没有返回任何结果:
cat file | while read f1 f2; do awk -F" " '($1==$f2) && ($2==$f1)' file; done
在这段代码中我只想找到重复的对。要删除重复,我会做这样的事情:
cat file | while read f1 f2; do awk -F" " '($1!=$f2) && ($2!=$f1)' file; done
答案 0 :(得分:3)
关注awk '{b[$1,$2]} !($2,$1) in b' Input_file
可能对您有帮助。
<div id="container">
<img style="margin-left:auto;margin-right:auto;"></img>
</div>
答案 1 :(得分:2)
常见的惯用解决方案:
$ awk '!seen[$1>$2 ? $1 FS $2 : $2 FS $1]++' file
cat dog
mouse cat
dog mouse