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
强制完全匹配。
所以您的要求是 "give me all lines containing string cat
"。那为什么不简单地使用 grep
:
grep cat file
你可以使用这个awk
awk '/cat/' file
查看所有包含单词 'cat' 的行(如 Kent 所指):
grep cat file
查看所有不包含单词 'cat':
的行
grep -v cat file
我很惊讶在 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
强制完全匹配。
所以您的要求是 "give me all lines containing string cat
"。那为什么不简单地使用 grep
:
grep cat file
你可以使用这个awk
awk '/cat/' file
查看所有包含单词 'cat' 的行(如 Kent 所指):
grep cat file
查看所有不包含单词 'cat':
的行grep -v cat file