我看到了很多关于sed命令的问题,但没有一个与我的家伙相符.
我想替换包含模式的整行.
我认为这个sed命令是最好的选择.我开始使用此sed命令但不起作用
sed -i 's/pattern/Substitution/' myfile.txt
Run Code Online (Sandbox Code Playgroud)
之后,我正在测试这个其他命令,但只替换模式,而不是整行.
echo "hello y luego bye" | sed "s|hello|adeu|g"
Run Code Online (Sandbox Code Playgroud)
anu*_*ava 11
您需要匹配包含该模式的整行,然后替换.像这样使用它:
sed 's/^.*\bpattern\b.*$/Substitution/' file
Run Code Online (Sandbox Code Playgroud)
我还添加\b了单词边界,以便您只匹配pattern但避免匹配patterns.
说明: ^.*\bpattern\b.*$我们过去常常确保整行匹配包含模式.^是行开头,$是行结束..*匹配0或更多长度的文本.因此^.*匹配之前的所有文本pattern并.*$匹配之后的所有文本pattern.
使用awk你可以做到:
awk '!/affraid/{print} /affraid/{print "Substitution"}' file
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20981 次 |
| 最近记录: |