아래 스크립트를 사용하여 파일의 단어 목록을 대체하고 있습니다.
하지만 스크립트를 실행할 때 다음 오류가 발생합니다.
can't read s/@@/AU/g: No such file or directory
스크립트의 문제점을 알려주실 수 있나요?
# source the properties:
. config.properties
######## Generating test data on runtime ###############
echo "**************************************************************************"
echo " Test Data Generation for Markets .. *"
echo "**************************************************************************"
IFS="," read -ra items <<<"$markets"
for item in "${items[@]}"
do
Country=`echo $item|tr [a-z] [A-Z]`
date1=$(date --date="20 day ago" +"%Y-%m-%d %H:%M")
date2=$(date --date="400 day ago" +"%Y-%m-%d %H:%M")
epoch1=$(date --date="20 day ago" +%s)
epoch2=$(date --date="40 day ago" +%s)
cp Sample_testdata testdata_$UPPER_CASE
sed -i "s/@@/${Country}/g" -e "s/date-20/${date1}/g" -e "s/date-400/${date2}/g" -e "s/epoch_date-20/${epoch1}/g" -e "s/epoch_date-40/${epoch2}/g" testdata_$UPPER_CASE
echo "test data generation completed for Market :: $Country"
done
답변1
여러 -e
비트를 사용하는 경우 sed
다음을 확인하십시오.모두-e
첫 번째 부분을 포함하여 이러한 부분에는 접두사가 붙습니다 .
sed -e ... -e ... -e ... -e ...
설마
sed ... -e ... -e ... -e ...
또는 하나의 sed
표현식만 사용할 수 있습니다. 이 경우 해당 표현식의 명령을 생략 -e
하고 줄바꿈을 사용하여 구분할 수 있습니다.;
sed -i "s/@@/${Country}/g; s/date-20/${date1}/g; ..." file
또는
sed -i "
s/@@/${Country}/g
s/date-20/${date1}/g
..." file