我有一个包含类似文件名的abc.log文件
cat abc.log
>
a.arc
a.arc
b.arc
c.arc
c.arc
d.arc
e.arc
e.arc
f.arc
我需要一个shell脚本来扫描abc.log文件并仅将重复值重定向到def.log
要求:
cat def.log
>
a.arc
c.arc
e.arc
/*only the duplicate values in abc.log*/
编辑:
cat abc.log /*may be unsorted too */
>
a.arc
b.arc
c.arc
a.arc
c.arc
e.arc
e.arc
d.arc
任何建议
提前致谢
答案 0 :(得分:0)
使用uniq -d
。
uniq -d abc.log > def.log
请注意,在您的问题中,第二行中有一个尾随空格,但第一行中没有尾随空格,这使得uniq
将它们视为不同。
对于未排序的输入:
sort abc.log | uniq -d > def.log
答案 1 :(得分:0)
@ timrau的回答比这更好:
awk '++seen[$0] == 2' in > out
这里唯一的优点是输入不需要排序。