如何使用sed删除带有模式的整行

时间:2013-11-07 17:00:21

标签: sed

我有一个文件:

hi:: hello hai
welcome
bye

我想删除带有hi

字样的行

我尝试了以下命令:

sed -i -e "/hi/d" filename

但输出是

 :: heloo hai

如何使用sed删除整行?这是第"hi::hello hai"

3 个答案:

答案 0 :(得分:0)

立即尝试/^.*hi.*$/d can.t测试,这是一个疯狂的猜测

答案 1 :(得分:0)

这应该足够了:

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

答案 2 :(得分:0)

使用awk可以执行此操作

awk '!/^hi/' file
welcome
bye

这将删除行首hi行。你没有说世界是否可以处于句子的中间。如果是这样,请执行:

awk '!/hi/'
welcome
bye