У меня есть несколько файлов, содержащих строки, некоторые из них похожи на показанные ниже:
HETATM 2340 C2 2FN 1 15.566 27.839 11.677 1.00 24.33 C
мне нужно заменить
2FN 1
до
2FN D 1
так что конечный результат:
HETATM 2340 C2 2FN 1 15.566 27.839 11.677 1.00 24.33 C
Это довольно просто, используя команду sed, и в случае, если вы всегда используете одни и те же слова для замены
sed 's/2FN 1/2FN D 1/g' input.file > output.file
Однако, в случае, если вы хотите использовать переменные
A="2FN"
B="1"
в команде sed результат не тот, который ожидается, я полагаю из-за замены в тексте нескольких пробелов.
Я пробовал несколько способов, таких как:
A="2FN"
B="1"
S=' '
G=$(echo "$LIG${S}$LIGN")
sed 's/$G/2FN D 1/g' input.file > output.file
Но ожидаемый результат не был получен.
Интересно, что по эхо-переменной G это:
"2FN 1"
но sed не заменяет на
"2FN D 1"
У вас есть предложения?
Спасибо