我看到了很多关于sed
命令,但没有一个与我的家伙匹配。
我想替换包含模式的整行。
我觉得sed
命令是最好的选择。我从这个开始sed
命令但不起作用
sed -i 's/pattern/Substitution/' myfile.txt
之后,我使用另一个命令进行测试,但仅替换模式,而不是整行。
echo "hello y luego bye" | sed "s|hello|adeu|g"
您需要匹配包含该模式的整行,然后进行替换。像这样使用它:
sed 's/^.*\bpattern\b.*$/Substitution/' file
我还添加了\b
对于单词边界,以便您只匹配pattern
但避免匹配patterns
.
解释: ^.*\bpattern\b.*$
我们用来确保整行都匹配包含模式。^
是行开始并且$
是行尾。.*
匹配 0 个或更多长度的文本。所以^.*
匹配之前的所有文本pattern
and .*$
匹配之后的所有文本pattern
.
使用 awk 你可以这样做:
awk '!/affraid/{print} /affraid/{print "Substitution"}' file
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)