sed:-e表达式#1,字符43:s'的未知选项;

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

我试图用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,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}|"