sed 对变量而不是标准输入或文件进行操作

Sam*_*adi 2 regex variables shell sed

有很多的问题询问有关如何在SED模式中使用一个变量,例如:sed "s/re/$VAR/" file,但我想执行替换的变量。到目前为止,我一直echo在这样做:

echo "$VAR" | sed 's/re/new/'
Run Code Online (Sandbox Code Playgroud)

但是,虽然这有效,但看起来很混乱。在 bash 或 zsh 中是否有更简单/更优雅的方法来做到这一点?

jkd*_*dba 6

你可以这样做:

sed 's/re/new' <<< "$var"
Run Code Online (Sandbox Code Playgroud)

如果你想这样做并更新变量,你可以这样做:

var=$(sed 's/re/new' <<< "$var")
Run Code Online (Sandbox Code Playgroud)