Я хочу заменить следующую исходную строку, заменив строку.Заменить строку с помощью sed в Linux
original_str="#22=SI_UNIT(*,*,#5,'','metre');"
replace_str="#22=SI_UNIT(*,*,#5,'','millimetre');"
sed -i "s/$original_str/$replace_str/" ./output/modified.txt
Я попытался по-разному использовать 'sed'. Однако он не работает. Кто-нибудь есть идеи?
Концепция № 22 относится к другой концепции позже в том же файле. Это причина?
Пожалуйста, обратите внимание, что он работает нормально для следующей строки в том же Баш скрипт:
original_str="#103=CARTESIAN_POINT('P3',0.0,0.0,1.0,#72);"
replace_str="#103=CARTESIAN_POINT('P2',10.0,10.0,10.0,#72);"
sed -i "s/$original_str/$replace_str/" ./output/modified.txt
Концепция # 103 не используется в более поздней концепции в том же файле.
спасибо.
Да, вы правы, но я просто понял, что вы * можете * убежать '#', что мне очень интересно. – hgiesel
Как я уже писал, работает более поздний код (замена). Я хочу заменить первый код. Это «метр» до «миллиметра». Кроме того, я пробовал использовать «\». Это не работает. – jp071