我想用 sed 来做到这一点。我有 2 个文件:
keys.txt:
host1
host2
test.txt
host1 abc
host2 cdf
host3 abaasdf
我想使用 sed 删除 test.txt 中包含 keys.txt 中的关键字的所有行。所以 test.txt 的结果应该是
host3 abaasdf
有人可以告诉我如何用 sed 做到这一点吗?
谢谢,
我想用 sed 来做到这一点。我有 2 个文件:
keys.txt:
host1
host2
test.txt
host1 abc
host2 cdf
host3 abaasdf
我想使用 sed 删除 test.txt 中包含 keys.txt 中的关键字的所有行。所以 test.txt 的结果应该是
host3 abaasdf
有人可以告诉我如何用 sed 做到这一点吗?
谢谢,
我建议使用grep
这个(特别是fgrep
因为没有涉及正则表达式),所以
fgrep -v -f keys.txt test.txt
行得通吗?sed
很快就可以了:
sed -i.ORIGKEYS.txt ^-e 's_^_/_' -e 's_$_/d_' keys.txt
sed -f keys.txt test.txt
(这keys.txt
会将原始文件修改为可获取源的 sed 脚本。)
这可能对您有用(GNU sed):
sed 's|.*|/^&\\>/d|' keys.txt | sed -f - test.txt