У меня есть следующий сценарий:Awk - subsititute текст в определенном месте
script.sh:
#!/bin/bash
FileName=$1;
awk '
/Import()/
{
while (sub(/\$requestedMessage/, "bar") == 0)
{
print;
getline;
}
}
1' > file.tmp $FileName
И следующий файл:
файл:
function FunctionA()
{
message=$requestedMessage
}
function FunctionB()
{
message=$requestedMessage
}
Идея состоит в том, чтобы позвонить
./script.sh file
и заменить message=$requestedMessage
переменные в функции FunctionB()
для message=bar
, но только в FunctionB()
и не FunctionA()
Я очень новый для AWK и я, кажется, не понимаю, что я делаю неправильно.
Спасибо,
Привет, Это работает! Но когда я швыряю, чтобы добавить концы до «{» и после «}», чтобы попытаться понять ваш код, он перестает работать ... Можете ли вы объяснить в своем ответе, как это работает немного? – Kam
Также мы можем сделать это без использования RS и ORS, так как это сделает зависимый файл «файл» – Kam
Вы не можете поместить символ новой строки перед '' ', поскольку это полностью изменяет значение скрипта. Пробелы имеют значение в awk-скриптах. Я поставил пару новых строк, где они могут идти. Вы можете написать другой скрипт, чтобы делать то, что вы хотите, не устанавливая RS и ORS, но я не понимаю, что вы имеете в виду, когда говорите, что их установка «сделает файл решения« зависимым »- какой файл и почему? –