以下のスクリプトを使用してファイルの単語リストを置き換えています。
ただし、スクリプトを実行すると、次のエラーが発生します。
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 ...
あるいは、1つのsed
式のみを使用できます。この場合、その式のコマンドを省略し、改行を使用して-e
区切ることができます。;
sed -i "s/@@/${Country}/g; s/date-20/${date1}/g; ..." file
または
sed -i "
s/@@/${Country}/g
s/date-20/${date1}/g
..." file