Bash 将字符串与空格匹配,并用另一个类似的字符串替换为空格
我有一个名为Try1.txt的文件,其中包含字符串Bash 将字符串与空格匹配,并用另一个类似的字符串替换为空格,bash,sed,Bash,Sed,我有一个名为Try1.txt的文件,其中包含字符串 “结束日期:” 我有一个名为Try1.sh的脚本,它将字符串分配给变量 STR1=“结束日期:” 我还为以下变量分配了一个替换字符串 STR2=“结束日期:2014年6月5日星期二” 我想就地编辑文件并用STR2替换STR1。 我尝试了几种不同的sed命令,但都没有找到答案。 我尝试了sed-I-e“s/$STR1/$STR2/g”Try1.out.txt 但它给了我以下错误: sed.exe:-e expression#1,char 49:s
“结束日期:”
我有一个名为Try1.sh的脚本,它将字符串分配给变量
STR1=“结束日期:”
我还为以下变量分配了一个替换字符串
STR2=“结束日期:2014年6月5日星期二”
我想就地编辑文件并用STR2替换STR1。
我尝试了几种不同的sed命令,但都没有找到答案。
我尝试了
sed-I-e“s/$STR1/$STR2/g”Try1.out.txt
但它给了我以下错误:
sed.exe:-e expression#1,char 49:s的未知选项
您的问题是
$STR2
包含斜杠/
假设$STR1
和$STR2
都不包含下划线,\uuu
,以下操作将起作用:
$ sed "s_${STR1}_${STR2}_g" <Try1.txt >Try1.out.txt
$sed“s_${STR1}{STR2}\u g”Try1.out.txt
测试:
$STR1=“结束日期:”
$STR2=“结束日期:2014年6月5日星期二”
$echo“$STR1”>Try1.txt
$sed“s_${STR1}{STR2}}g”我尝试了这两个选项,但出现了以下错误。选项在此NT BASH上不可用release@user3145909:我不熟悉NT bash(似乎基于bash 1.14.2)。但是我认为sed“s{STR1}{STR2}g”
$ STR1="End Date : "
$ STR2="End Date : Tuesday 05/06/2014"
$ echo "$STR1" > Try1.txt
$ sed "s_${STR1}_${STR2}_g" <Try1.txt
End Date : Tuesday 05/06/2014
sed "s^A$STR1^A$STR2^Ag" <Try1.txt