我有以下模式:
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
表示要使用哪个捕获的文本。捕获的文本按顺序进行计数\(
。