我想将文件“text.txt”与特殊目录中的其他文件进行比较,并仅在文件“text.txt”中删除重复的字符串。
我该怎么做?
答案 0 :(得分:1)
假设文件位于“目标”目录
perl -ne 'chomp;push (@x,$_);END{$ENV{R}= "^(".join("|",@x).")";system qq(perl -i.bak -pe "if (/\x0a/){s/$ENV{R}\x0a//g}else{s/$ENV{R}//g};" target/*)}' test.txt
Becareful!代码未经过全面测试,在执行前备份文件
答案 1 :(得分:1)
如果行的顺序不重要(bash):
comm -23 <( <text.txt sort ) <( cat directory/* | sort ) > text.txt.uniques
如果订单很重要,可以使用nl
标记这些行,然后必须使用join
来查找相同的行,然后输出sort -n
并cut
1}}摆脱数字。