我正在尝试使用分配给名为input的变量的输入替换文本文件中的customernumber。但无法使用sed完成此操作,下面是我正在尝试的方法
input=$(cat customernumber.txt)
echo $input
cat CUSTOMER_REPORT.txt | sed -e s/%customernumbers%/$input/g > temp.sql
我的customernumber.txt
包含值(12345,67890)
,我的CUSTOMER_REPORT.txt
包含以下值:
SELECT CUSTOMERNUMBER,ORDERNUMBER
FROM ORDER WHERE CUSTOMERNUMBER IN %customernumbers% WITH UR;
我收到以下错误:
sed: -e expression #1, char 31: unterminated `s' command
如何用$ input中的值替换%customernumbers%?除了sed之外还有其他选择吗?
答案 0 :(得分:0)
您应该将替换sed
命令放在双引号之间
sed -e "s/%customernumbers%/$input/g" > temp.sql
调试一下后:
cat CUSTOMER_REPORT.txt | sed -e "s/%customernumbers%/(12345,67890)/g" > temp.sql
工作正常,所以我们缩小了根本原因,直到我们使用customernumber.txt
或wc -l customernumber.txt
cat -vTE customernumber.txt
经过一些修复后,它工作正常。