我很惊讶我在SO上找不到与此类似的问题.
如何使用sed删除所有不包含特定模式的行.
例如,我有这个文件:
cat kitty dog
giraffe panda
lion tiger
Run Code Online (Sandbox Code Playgroud)
我想要一个sed命令,当被调用时,将删除所有不包含该单词的行cat:
cat kitty dog
Run Code Online (Sandbox Code Playgroud)
这样做:
sed -i '/cat/!d' file1.txt
Run Code Online (Sandbox Code Playgroud)
强制完全匹配:
sed -i '/\<cat\>/!d' file1.txt
Run Code Online (Sandbox Code Playgroud)
要么
sed -i '/\bcat\b/!d' file1.txt
Run Code Online (Sandbox Code Playgroud)
其中,\<\>与\b\b强制执行精确匹配.