[英]sed- delete line that doesn't contain a pattern
我很驚訝我在SO上找不到與此類似的問題。
如何使用sed刪除所有不包含特定模式的行。
例如,我有這個文件:
cat kitty dog
giraffe panda
lion tiger
我想要一個sed命令,當被調用時,將刪除所有不包含單詞cat
:
cat kitty dog
這樣做:
sed -i '/cat/!d' file1.txt
強制完全匹配:
sed -i '/\<cat\>/!d' file1.txt
要么
sed -i '/\bcat\b/!d' file1.txt
其中\\<\\>
& \\b\\b
強制完全匹配。
所以你的要求是“給我所有包含字符串cat
”。 那么為什么不只是簡單地使用grep
:
grep cat file
你可以使用這個awk
awk '/cat/' file
看到所有包含'cat'字樣的行(如Kent所指出的):
grep cat file
看到所有不包含'cat'字樣的行:
grep -v cat file
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.