Aar*_*lli 3 regex sed pattern-matching
我想知道如何使用 sed 替换包含模式的行,但前提是前一行具有另一个模式。我有一个包含以下内容的文本文件:
Property: ONE
Value: some_value
Property: TWO
Value: some_value
Property: THREE
Value: some_other_value
Run Code Online (Sandbox Code Playgroud)
因此,我想找到包含some_value的行,并将整行替换为另一行,或者仅更新值,但前提是属性行包含单词ONE。最终结果看起来像这样
Property: ONE
Value: replaced_value
Property: TWO
Value: some_value
Property: THREE
Value: some_other_value
Run Code Online (Sandbox Code Playgroud)
sed你可以这样使用:
sed '/Property: ONE/{n;s/Value:.*/Value: replaced_value/}' file
Run Code Online (Sandbox Code Playgroud)
找到模式后Property: ONE,我使用该命令将下一行读入模式缓冲区n,并使用该命令替换该值s。