簡體   English   中英

sed-刪除不包含模式的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM