sed 是否可以用正则表达式中的捕获组替换一行?
我有这个正则表达式,请注意这是固定的,我无法更改它。
simple sample(.*)
这就是我要的:
This is just a simple sample line with some text
Run Code Online (Sandbox Code Playgroud)
改成:
line with some text
Run Code Online (Sandbox Code Playgroud)
我需要这样的东西:
sed '/simple sample \(.*\)/c \1'
Run Code Online (Sandbox Code Playgroud)
现在输出:
1
Run Code Online (Sandbox Code Playgroud)
有人知道您是否可以在 sed 中使用带有更改行功能的捕获组吗?
像这样?
echo "This is just a simple sample line with some text" | \
sed 's/simple sample \(.*\)/\n\1/;s/.*\n//'
Run Code Online (Sandbox Code Playgroud)
这个想法很简单:用换行符前面的捕获组替换整个正则表达式匹配。然后将包括第一个换行符在内的所有内容替换为空。当然,您可以使用换行符以外的标记。