В следующем примере (example.txt)
name1 stringA1 stringB1 stringC1
name2 stringA2 stringB2 stringC2
Я бы хотел заменить в файле 'stringB1' строки 'new_string', которые соответствуют 'name1', используя переменную.
Мне удалось напечатать интересующие строки, используя:
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