当行与sed完全匹配另一个字符串时

时间:2018-09-09 13:26:11

标签: bash variables sed replace in-place

在以下示例(example.txt)

name1   stringA1    stringB1    stringC1
name2   stringA2    stringB2    stringC2

我想用变量匹配“ name1”的“ new_string”行替换文件“ stringB1”。

我成功使用以下方法打印了感兴趣的行

NAME="name1"
sed -n "/^\<${NAME}\>/p" example.txt

但是当我尝试使用bash变量进行替换时,我在打印行时遇到了问题:

NAME="name1"
STRING_TO_REPLACE="stringB1"
NEW_STRING="new_string"
sed -n "/^\<${NAME}\>/s/\<${STRING_TO_REPLACE}>/\<${NEW_STRING}\>/" example.txt

最终的想法是使用sed -i选项直接替换文件中的字符串

sed -i "/^\<${NAME}\>/s/\<${STRING_TO_REPLACE}>/\<${NEW_STRING}\>/" example.txt

0 个答案:

没有答案