내가 내용을 텍스트 파일이 명령 : currentVersion=9.2.05
는 나오지 도움이 필요하고 AWK는
#Project Name: XYZ
#Module Name: ABC
#
#
currentVersion=9.2.04
가 지금은 쉘 스크립트가를
스크립트
ls_version=`grep -i currentVersion version.txt | awk '{print $NF}'`
counter=`echo $ls_version | awk -F . '{print $NF}'`
fs_version=`echo $ls_version | awk -F"." -v OFS='.' '{$NF=""; print $0}'`
echo "counter b4 addition: $counter"
counter=`expr ${counter} + 1`
version=`echo ${fs_version}$counter`
echo "ls_version: $ls_version"
echo "fs_version: $fs_version"
echo "counter post addition: $counter"
echo "final version: $version"
sed -i -e "s/\(currentVersion=\).*/\1$version/" version.txt
하지만 대신이 같은 오/p를 제공합니다
currentVersion=05
currentVersion=05
currentVersion=05
currentVersion=05
currentVersion=05
currentVersion=05
currentVersion=05
을
이 스크립트의 잘못된 점을 알려주십시오. 다음 AWK는 당신이 당신의 INPUT_FILE의 버전을 향상하는 데 도움이 될 것입니다 사전
에코 사용 후 AWK의 출력을 저장하지 않으며,이 때문에 많은 것들이 .... 잘못 AWK로하지 파이프 GREP을 다른 awk에 파이프하기 위해서, expr을 사용하지 말고, 'sed -i'를 사용하지 말고, 역 인용 부호 대신 $()를 사용하십시오. 이것은 완전한 목록은 아닙니다. –
마지막'sed'에서 파일 내용에 "currentVersion = 05"로 바뀌는 각 줄을 표시하는 내용이 보이지 않습니다. 이것을 디버깅하려면'sed -i'를 사용하지 말고 실제 결과를 보여 주어야합니다 (예를 들어, "counter b4 addition"에 무슨 일이 일어 났을 까? 아마도 당신이 실행중인 코드는 보여주고있는 코드가 아닙니다), 실제 입력과 실제 암호. –
@William Pursell, 귀하의 회신에 감사드립니다. sed -I를 제거한 후. version.txt 파일에는 변경/업데이트가 없습니다. – Celestial