我有一个名为test的文件:
Helloabcd hi 123
abcif a equals babc
you abc 123abc
one abc two
three aggbc four abc1
我只想打印具有确切单词' abc'的那些,所以输出为:
Helloabcd hi 123
abcif a equals babc
three aggbc four abc1
这就是我所做的:
sed '/'^(.*)[ ]abc[ ]*(.*)$'/!d' test
我的正则表达式出了什么问题?
thanksss
答案 0 :(得分:0)
我想你想要这个,
$ sed -n '/\(^\| \)abc\( \|$\)/p' file
you abc 123abc
one abc two
上述反转将是,
$ sed '/\(^\| \)abc\( \|$\)/d' file
Helloabcd hi 123
abcif a equals babc
three aggbc four abc1
答案 1 :(得分:0)
尝试使用单词边界\b
:
sed -n '/\babc\b/p' test
答案 2 :(得分:0)
如果您想尝试awk
,则需要字边界:
awk '/\<abc\>/' file
you abc 123abc
one abc two
答案 3 :(得分:-1)
你问了sed。有时候答案是使用更适合您要求的工具:
考虑awk:
awk '/abc/' infile
考虑grep
grep 'abc' infile
Avinash向您展示了一个sed解决方案。你很高兴。