如何在没有带env var的文件的情况下使用SED?

时间:2012-01-17 23:31:26

标签: bash shell sed environment-variables

是否可以使用SED替换env var中的东西?

$ a='aoeua'
$ sed 's@a@o@g' <$a
bash: aoeua: No such file or directory
$ env|grep "SHELL"
SHELL=/bin/bash

我想要的输出是

ooeuo

a替换'aoeua'中的每个o

2 个答案:

答案 0 :(得分:12)

使用echo:

$ echo "$a" | sed 's@a@o@g'

在bash中,您还可以使用${parameter/pattern/string}语法进行简单替换。例如:

$ v='aoeua'
$ echo ${v/a/o}
ooeua

请注意,这只会替换第一次出现的模式。

答案 1 :(得分:7)

这可能对您有用:

a='aoeua'
sed 's@a@o@g' <<<$a
ooeuo

<<<$ahere-string