linux - 在linux中使用sed命令更改变量值

标签 linux bash shell sed

我在 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 更改所有变量

最佳答案

这个简单的 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

编辑2:如果您正在寻找仅要更改的特定字符串,那么以下内容可能会帮助您。

awk '/DB_USERNAME/||/DB_ABC_USERNAME/||/DB_ABC_DEF_USERNAME/{sub(/=.*/,"=root")} 1'  Input_file

在上面的代码中添加 > temp_file && mv temp_file Input_file 以防您想将输出保存在同一个 Input_file 本身中。

关于linux - 在linux中使用sed命令更改变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49316418/

相关文章:

ruby-on-rails - Ruby on Rails : cannot install FFI 1. 1.5 和捆绑程序无法继续

linux - ov5642 无法以 30fps 工作

linux - Linux内核设备驱动中的filp_open

linux - 如何在另一个文件夹中执行命令并返回到原始目录?

java - 在 java shebang 脚本中加载库

c - 通过 Sublime Text 输出 C/关闭命令控制台

linux - Cygwin 狂欢 : read file word by word

string - 需要帮助使用 Bash 和 sed 着色/替换任意字符串

bash - 如何在 bash 中创建类似集合的数组?

bash - shell脚本中的for循环/if条件