使用bash替换文件中的内容

时间:2017-04-29 05:59:01

标签: bash centos7 editing

我希望用文件/ etc / openvpn / easy-rsa / vars中的变量$ COUNTRY中读取的数据替换行导出KEY_COUNTRY =“US”

在我之前与CentOS6一起使用的版本中,我使用了与mysql-server捆绑在一起的命令replace。但是现在该功能不再可用,我正在寻找替代数据的替代命令的想法。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用sed,但请记住,如果$ COUNTRY禁用控制字符,它可能会失败。

sed -i 's/KEY_COUNTRY="US"/KEY_COUNTRY="'"$COUNTRY"'"/' file

使用Perl会更安全,因为它不会将变量内容解释为语法的一部分:

perl -i -pe 's/KEY_COUNTRY="US"/KEY_COUNTRY="$ENV{COUNTRY}"/' -- file
必须在perl过程中访问

$ COUNTRY,即您需要export或分配给它

COUNTRY=$COUNTRY perl ...