替换匹配包含斜杠的字符串的行?

时间:2014-06-04 01:22:09

标签: regex sed

我有一个这样的文件:

/foo/bar/asdf
asdf/foo/bar/qwerty
/qwerty/foo/asdf
/asdf/qwerty/bar

我想删除任何不包含/bar/的行,以便所需的输出为:

/foo/bar/asdf
asdf/foo/bar/qwerty

我尝试使用不同的字符作为分隔符,例如冒号:sed \:/blocks/:!d file -i,但它似乎没有删除任何内容。

2 个答案:

答案 0 :(得分:3)

尝试使用此sed命令,

sed -n '/\/bar\//p' file

它打印包含/bar/字符串

的所有行

示例:

$ cat rr.txt
/foo/bar/asdf
asdf/foo/bar/qwerty
/qwerty/foo/asdf
/asdf/qwerty/bar

$ sed -n '/\/bar\//p' rr.txt
/foo/bar/asdf
asdf/foo/bar/qwerty

答案 1 :(得分:1)

awk解决方案。

awk '/\/bar\//' file
/foo/bar/asdf
asdf/foo/bar/qwerty