我在linux中找到一个sed
命令,可以将以下变量值替换为.env文件中的root
DB_USERNAME=123
DB_ABC_USERNAME=abc
DB_ABC_DEF_USERNAME=abcdef
到
DB_USERNAME=root
DB_ABC_USERNAME=root
DB_ABC_DEF_USERNAME=root
文件中有另一个变量,如DB_HOST = xxx,我们不能使用sed更改所有变量
答案 0 :(得分:1)
我得到了更好的答案
sed -i '/DB_.*USERNAME/s/=.*/=root/g' .env
我认为这是一个很好的问题,但为什么不喜欢?
答案 1 :(得分:0)
这个简单的sed
会帮助你。
sed 's/=.*/=root/g' Input_file
如果您想将输出保存到相同的Input_file中,请在上面的代码中使用sed -i
选项。
编辑: 如果您想要查找特定的字符串值,只能搜索和替换,那么以下内容可能对您有帮助。
sed -E '/(DB_USERNAME)|(DB_ABC_USERNAME)|(DB_ABC_DEF_USERNAME)/s/=.*/=root/g' Input_file
EDIT2: 如果您要查找的特定字符串只是要更改,那么以下内容可能对您有帮助。
awk '/DB_USERNAME/||/DB_ABC_USERNAME/||/DB_ABC_DEF_USERNAME/{sub(/=.*/,"=root")} 1' Input_file
在上面的代码中添加> temp_file && mv temp_file Input_file
,以防您想要将输出保存在同一个Input_file中。