Linux 使用bash替换文本文件中的字符串
我正在尝试在linux中使用脚本替换文件中的字符串 读完这篇文章: 我用了下面这句话Linux 使用bash替换文本文件中的字符串,linux,bash,perl,Linux,Bash,Perl,我正在尝试在linux中使用脚本替换文件中的字符串 读完这篇文章: 我用了下面这句话 perl -pi -e "s/myparam/$MY_VAR/g" /res/raw/configuration.xml 但问题是MY\u VAR包含一个url(类似),其中包含/,它根本不替换字符串 我假设我不需要编写一个脚本来查找和替换所有的/,有一个简单的方法来解决它 谢谢您可以将此sed与备用分隔符一起使用: sed -i.bak "s~myparam~$MY_VAR~g" /res/raw/con
perl -pi -e "s/myparam/$MY_VAR/g" /res/raw/configuration.xml
但问题是MY\u VAR
包含一个url(类似),其中包含/
,它根本不替换字符串
我假设我不需要编写一个脚本来查找和替换所有的/
,有一个简单的方法来解决它
谢谢您可以将此sed与备用分隔符一起使用:
sed -i.bak "s~myparam~$MY_VAR~g" /res/raw/configuration.xml
Perl
也允许同样的so使用:
perl -pi -e "s~myparam~$MY_VAR~g" /res/raw/configuration.xml
或者将$MY_VAR
放在命令行上,而不是将其插入perl一行程序中
perl -pi -e 'BEGIN{$s = shift} s/myparam/$s/g' $MY_VAR /res/raw/configuration.xml
您还可以在Perl中使用备用分隔符。是的,我只是在将其添加到答案之前先验证它。谢谢。
$ENV{MY_VAR}
将是使用shell变量的自然方式。@TLP tnx供评论。
perl -pi -e 'BEGIN{$s = shift} s/myparam/$s/g' $MY_VAR /res/raw/configuration.xml