+ -
当前位置:首页 → 问答吧 → 请问如何输出文本中的非重复行,重复行删掉

请问如何输出文本中的非重复行,重复行删掉

时间:2011-06-17

来源:互联网

我的文本内容如下所示:
张三
李四
王玉
张三
李四

我想输出的结果如下:
王玉
因为张三,李四在文本中都有重复出现,而且不管这种重复是否是连续的行,只要出现了就将该行删除。
还有一个要求就是行的顺序最好不要调,像sort打乱行序的不是很好。
请问高手,如何实现?万分感谢!

作者: chenjiali1   发布时间: 2011-06-17

cat file | sort | uniq -u

作者: 惟吾无为   发布时间: 2011-06-17

Lz 要记录下行号 然后去掉重复 然后排序行号输出

作者: luyi1983   发布时间: 2011-06-17

回复 luyi1983


    请问如何实现?非常谢谢!

作者: chenjiali1   发布时间: 2011-06-17

回复 惟吾无为


    我不想用sort将文件的行序打乱,:-),

作者: chenjiali1   发布时间: 2011-06-17

awk 'NR=FNR{a[$0]++;next}a[$0]==1' file file

作者: yinyuemi   发布时间: 2011-06-17

awk '{a[$0]++}END{for(i in a){if(a[i]==1)print i}}'  urfile

作者: HH106   发布时间: 2011-06-17

  1. awk '!a[$0]++{b[n++]=$0}END{for (i=1;i<=n;i++) if (a[b[i]]==1) print b[i]}' file
复制代码

作者: ywlscpl   发布时间: 2011-06-17

awk '{a[$0]++; b[$0]=NR; }END{for (i in a){ if (a[i] == 1){ print i, b[i] } } }' ufile | sort -nk2

lz自己去改改 把sort写在awk里 并且删掉行号 就更加好了

作者: luyi1983   发布时间: 2011-06-17

非常感谢楼上各位,awk的功能真的很强大,:-),以后还得多加学习。

作者: chenjiali1   发布时间: 2011-06-17