저는 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