sed :替换 1 个单词而不重复句子的其余部分

sed :替换 1 个单词而不重复句子的其余部分

我有以下模式:

foo bar

始终foo相同,但bar可以改变。我有一个哈希表,对于 的每个值bar,都有一个新的值。我现在做的是:

sed -i 's/foo bar/foo new_value/g' file

我很确定有一种方法可以避免foo在替换字符串中重复。是否sed提供类似的东西?喜欢

sed -i 's/foo @@bar@@/new_value/g' file

@@string@@是必须被替换的值。

答案1

sed -i 's/\(foo \)bar/\1new_value/g' file

\( \)序列“捕获”文本,然后可以将其作为 放置在替换字符串中\1。这可以执行多次,其中的数字\1表示要使用哪个捕获的文本。捕获的文本按顺序进行计数\(

相关内容