如何使所有行与所有这些单词匹配
toto
或titi
或clic
或SOMETHING
并删除其他任何行?
例如,如果我sed '/toto/ p ' file
不能选择titi
。
我正在寻找的东西类似于Perl正则表达式,
^ (word1|word2|word3|andsoon).*
。但是,sed
需要它,因为它将被集成到更大的sed
脚本中。
目标是使所有行以word
开头,其中word
是一组单词中的任何单词。
答案 0 :(得分:1)
这里的答案取决于您的主脚本的调用方式。假设您有一个包含以下内容的文件:
foo
car
bar
并且您对匹配“ foo”和“ bar”的行感兴趣,那么您可以:
sed '/foo\|bar/!d'
sed -n '/foo\|bar/!d;p'
sed -n '/foo\|bar/p'
所有这些都将输出:
foo
bar
如果您愿意的话:
sed '/foo\|bar/p'
您实际上重复了这些行。
foo
foo
car
bar
bar
如您所见,根据-n
标志的用法,会有一些不同的处理方式。
-n, --quiet, --silent
禁止自动打印图案空间来源:
man sed
通常,我的建议是在脚本sed
的开头删除不需要的行。