sed:-e表达式#1,字符43:s'的未知选项;
我试图用bash替换文件中的变量值sed:-e表达式#1,字符43:s'的未知选项;,sed,Sed,我试图用bash替换文件中的变量值 Input string ----- preprocess_date=06/24/2020_17:00 Expected string ----- preprocess_date=06/24/2020_17:10 我在prep\u tmp变量中有值06/24/2020\u 17:10。我已尝试以下命令: sed -i s/preprocess_date=.*/preprocess_date=${prep_tmp}/ 我得到错误sed:-e表达式#1,ch
Input string ----- preprocess_date=06/24/2020_17:00
Expected string ----- preprocess_date=06/24/2020_17:10
我在prep\u tmp
变量中有值06/24/2020\u 17:10
。我已尝试以下命令:
sed -i s/preprocess_date=.*/preprocess_date=${prep_tmp}/
我得到错误sed:-e表达式#1,char 43:s的未知选项
有人能帮我吗
提前感谢。使用3个独立的
/
命令:
sed -i s/preprocess_date=.*/preprocess_date=${prep_tmp}/
^ ^ ^
扩展到:
sed -i s/preprocess_date=.*/preprocess_date=06/24/2020_17:10/
^ ^ ^
在执行s
命令后溢出24/2020\u 17:10/
要解决此问题,可以用其他字符替换所有指定的/
。我喜欢使用|
(但也需要“
,以确保它们不会被shell解析为管道)
在sed表达式周围使用“-s”和一个不同的分隔符:
sed-i“s#preprocess_date=.*#preprocess_date=${prep_tmp}#”
请注意,当您在此处搜索[sed]未知选项时,
已经有270个Q/As。
sed -i "s|preprocess_date=.*|preprocess_date=${prep_tmp}|"