bash-3.2$ FNAME=$1
bash-3.2$ OLD_NO=$(grep "_version=" | awk -F '"' '{print $12}' $FNAME)
Строка 2, похоже, не работает для меня. Я не закрываю/цитирую его правильно? кажется повеситьBASH с использованием grep и awk внутри переменной
Обновленный сценарий, чтобы отразить ниже предложения
echo $OLD_NO
OLD_NO=$(grep '_version=' "$FNAME" | awk -F '"' '{print $12}')
#Get the version of the
echo "What do you want to update release number to?"
REPLACEMENT="_version="$NEW_NO
echo $REPLACEMENT
sed -i ''s/$OLD_NO/$REPLACEMENT/g'' $FNAME
~
получить новую ошибку
bash-3.2$ ./vu reader.xml
What do you want to update release number to?
_version=
sed: -e expression #1, char 0: no previous regular expression
Работает в Баш хотя
bash-3.2$ grep _version market_rules_cd.reader.xml | awk -F '"' '{print $12}'
14.8.21.1
Что нужно для '$ 1' в последнем? –
'grep' ждет своего ввода на стандартном входе; Я думаю, вы просто хотите поставить '$ FNAME' после' grep', а не 'awk'. – chepner
Вы изменили свой вопрос, так как я ответил. (например, включая мой ответ в вашем коде). Я отменил эти изменения. Задайте новый вопрос, если вам нужна дополнительная помощь. – hek2mgl