Rop*_*pez 23 regex sed substitution
我基本上想要这样做:
cat file | grep '<expression>' | sed 's/<expression>/<replacement>/g'
Run Code Online (Sandbox Code Playgroud)
无需两次写表达式:
cat file | sed 's/<expression>/<replacement>/g'
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉sed不要打印与substitute命令中的正则表达式不匹配的行?
jay*_*ngh 25
假设您有一个包含要替换的文本的文件.
$ cat new.text
A
B
Run Code Online (Sandbox Code Playgroud)
如果您想将A更改为a,那么理想情况下我们会执行以下操作 -
$ sed 's/A/a/' new.text
a
B
Run Code Online (Sandbox Code Playgroud)
但是如果你不希望获得不受替换影响的行,那么你可以使用n和p的组合,如下所示 -
$ sed -n 's/A/a/p' new.text
a
Run Code Online (Sandbox Code Playgroud)
pot*_*ong 17
这可能对你有用:
sed '/<expression>/!d;s//<replacement>/g' file
Run Code Online (Sandbox Code Playgroud)
要么
sed 's/<expression>/<replacement>/gp;d' file
Run Code Online (Sandbox Code Playgroud)