我有两个文件。我想从log.txt
中删除所有字符串(在url.txt中)第一个文件是url.txt
google.com
bing.com
yahoo.com
第二个文件是log.txt
1.2.3 www.google.com bot
626.7.7 www.yahoo.com browser
35.5.6 www.test.com search
44.6.6 www.bing.com web
我想要这个输出:
35.5.6 www.test.com search
此代码适用于字符串,但我希望从log.txt删除所有字符串(在url.txt中)
sed -i '/$string/d' log.txt
答案 0 :(得分:6)
您可以使用此grep -v
:
grep -vwFf url.txt log.txt
35.5.6 www.test.com search
答案 1 :(得分:2)
awk 'NR==FNR{urls["www."$1]; next} !($2 in urls)' url.txt log.txt
以上内容仅匹配log.txt
特定所需字段中的特定网址答案 2 :(得分:0)
扩展sed
脚本,这是扩展脚本,用于解析url.txt中的每一行,并删除log.txt中的对应字符串
while read string
do
sed -i '/$string/d' log.txt
done < url.txt