我有一个这样的文件:
/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
,但它似乎没有删除任何内容。
答案 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