如何使用sed删除模式中的整行
我有一个文件:如何使用sed删除模式中的整行,sed,Sed,我有一个文件: hi:: hello hai welcome bye 我想删除带有单词hi 我尝试了以下命令: sed -i -e "/hi/d" filename 但产出是有限的 :: heloo hai 如何使用sed删除整个线路??这就是现在无法测试的行“hi::hello hai”尝试/^.*hi.*$/d,因此这是一个猜测,这应该足够了: sed -e '/hi/d' file 测试和工作 tom@eee ~ % cat test hi:: hello hai welcom
hi:: hello hai
welcome
bye
我想删除带有单词hi
我尝试了以下命令:
sed -i -e "/hi/d" filename
但产出是有限的
:: heloo hai
如何使用sed删除整个线路??这就是现在无法测试的行“hi::hello hai”尝试
/^.*hi.*$/d
,因此这是一个猜测,这应该足够了:
sed -e '/hi/d' file
测试和工作
tom@eee ~ % cat test
hi:: hello hai
welcome
bye
tom@eee ~ % sed -e '/hi/d' test
welcome
bye
正如damienfrancois所说,grep也能工作:
tom@eee ~ % grep -v 'hi' test
welcome
bye
使用
awk
可以做到这一点
awk '!/^hi/' file
welcome
bye
这将删除行首有hi
的行。你没有说世界是否可以在句子的中间。如果是,请:
awk '!/hi/'
welcome
bye
奇怪,你的命令似乎很好。必须使用吗?看起来像典型的grep-v.work您的文本文件或环境有问题。这个命令在我这里的内容上运行得很好。@damienfrancois可能希望使用sed来实现就地功能,以避免手动放大到新文件并进行复制或其他任何操作。是否涉及MS windows?您可能有这样的行结尾\r\n。使用
dos2unix文件
清除该文件,然后重试。你的代码应该可以工作。祝你好运