Sed 删除所有符合但不包括图案的内容

Sed 删除所有符合但不包括图案的内容,sed,Sed,我这样做,它会删除所有内容,包括模式。我希望它不要删除该模式 sed -i '' 's/.*Pattern//g' file 我希望它能做到这一点 Hello this is a Pattern Pattern 谢谢典型的解决方案是 sed -i '' 's/.*\(Pattern\)/\1/' file #--------------^^-------^^-^^ 其中,\(..\)对是一个捕获组,\1表示“替换为捕获组(1)中找到的内容”。您最多可以有9个捕获组(在超现代SED中可能会有

我这样做,它会删除所有内容,包括模式。我希望它不要删除该模式

sed -i '' 's/.*Pattern//g' file
我希望它能做到这一点

Hello this is a Pattern
Pattern

谢谢

典型的解决方案是

sed -i '' 's/.*\(Pattern\)/\1/' file
#--------------^^-------^^-^^
其中,
\(..\)
对是一个捕获组,
\1
表示“替换为捕获组(1)中找到的内容”。您最多可以有9个捕获组(在超现代SED中可能会有更多)

请注意,您也可以使用lazymans方法,并用您的目标模式替换完全匹配,即

sed -i '' 's/.*Pattern/Pattern/' file
编辑并且由于@Beta,从
s/../g
中删除了冗余的
g


IHTH

典型的解决方案是

sed -i '' 's/.*\(Pattern\)/\1/' file
#--------------^^-------^^-^^
其中,
\(..\)
对是一个捕获组,
\1
表示“替换为捕获组(1)中找到的内容”。您最多可以有9个捕获组(在超现代SED中可能会有更多)

请注意,您也可以使用lazymans方法,并用您的目标模式替换完全匹配,即

sed -i '' 's/.*Pattern/Pattern/' file
编辑并且由于@Beta,从
s/../g
中删除了冗余的
g


IHTH

g的目的是什么?这似乎是多余的。
g
的目的是什么?这似乎是多余的。