bash-3.2$ FNAME=$1
bash-3.2$ OLD_NO=$(grep "_version=" | awk -F '"' '{print $12}' $FNAME)
2 번 라인이 작동하지 않는 것 같습니다. 닫지 않거나 정확하게 인용하지 않습니까? 이변수 내에서 grep 및 awk를 사용하는 BASH
이 제안 아래에 반영하기 위해 스크립트를 업데이트 걸 것으로 보인다
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'의 필요성은 무엇입니까 : SED) 그러나이 경우에만
_version=
을 포함하는 라인 작업을 제한하는 정규식 조건을 사용할 수 있습니까? –'grep'은 표준 입력에서 그 입력을 기다리고 있습니다; 나는'awk'가 아니라'grep' 다음에'$ FNAME'을 넣기를 원한다고 생각합니다. – chepner
내가 대답 한 이후로 귀하의 질문이 급격하게 변경되었습니다. (예 : 코드에 내 대답 포함). 변경 사항을 롤백했습니다. 추가 도움이 필요하면 새로운 질문을하십시오. – hek2mgl