我正在使用下面的脚本来替换文件中的单词列表。
但是我在执行脚本时遇到此错误:
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