bash带线匹配通配符

时间:2013-02-28 23:24:48

标签: bash shell sed grep

sed -i -e "/^*google.com*/d" activedomains.txt

我想要做的是剥离任何包含* google.com *的行,它需要是前后两者的通配符,似乎无法弄明白:/

3 个答案:

答案 0 :(得分:3)

sed使用正则表达式,而不是通配符(尽管可能有某些功能)。但是很容易改变:

sed -i '/google\.com/d' activedomains.txt

这会删除匹配 google.com的所有行。你也可以使用

sed -i -e '/^.*google.com.*/d' activedomains.txt

...这更符合您正在做的事情,字面意思是"字符串的开头,然后是任何字符的零或更多,其后是' google(任何字符之一)com& #39;其次是0或0以上的任何角色。"当然,因为它被"零或更多包围,"它也可以直接匹配。

答案 1 :(得分:1)

你是说这个吗?

sed -i -e "/google\.com/d" activedomains.txt

答案 2 :(得分:0)

这应该有效:

sed -i -e "/google.com/d" activedomains.txt

这里不需要通配符:它就像grep