sed를 사용하여 스크립트에서 문자열 바꾸기

sed를 사용하여 스크립트에서 문자열 바꾸기

저는 sed 명령을 처음 사용하고 "MONYY"가 포함된 SQL을 가지고 있으며 파일의 "MONYY"를 현재 "MONYY"로 자동 교체하여 변경하고 싶습니다.

다음 명령을 사용했고 이전 달과 연도, 이번 ​​달과 연도를 대문자로 얻을 수 있으며 이제 sed 명령을 사용하여 스크립트의 값을 바꾸려고 하는데 아무 일도 일어나지 않습니다.

date1=$ date +"%b%y"|sed 's/\(.*\)/\U\1/'

echo $date1

date2=$ date -d ' -1 month ' +"%b%y"|sed 's/\(.*\)/\U\1/'

echo $date2

sed 's/$date1/$date2/g' aggdom.sql > temp

누구든지 내가 사용하고 있는 sed 명령으로 나를 도와줄 수 있나요?

답변1

위의 스크립트는 모든 것을 $date1다음으로 대체합니다.$date2

temp하지만 결과는 파일 로 인쇄됩니다

문자열을 변경하고 싶다면aggdom.sql

다음과 같이 줄을 변경해야 합니다.

sed -i 's/$date1/$date2/g' aggdom.sql 

sed매뉴얼 페이지 에서 :

-i[SUFFIX], --in-place[=SUFFIX]

         edit files in place (makes backup if extension  supplied).   The
          default  operation  mode  is  to  break symbolic and hard links.
          This can be changed with --follow-symlinks and --copy.

-e일부 운영 체제에서는 옵션으로 추가해야 합니다 :

sed -i -e s/$date1/$date2/g aggdom.sql

관련 정보