我们有一个进程可以使用包含sed
命令的文件来更改管道输入。
我需要用变量值替换输入中的占位符,例如在-e
我可以运行的单一类型的命令中;
$ echo "Today is XX" | sed -e "s/XX/$(date +%F)/"
Today is 2012-10-11
但是我只能指定sed
文件中的方面(然后将进程指向文件),例如一个名为的文件replacements.sed
可能包含;
s/XX/Thursday/
很明显;
$ echo "Today is XX" | sed -f replacements.sed
Today is Thursday
但是,如果我想使用环境变量或 shell 值,我找不到使其扩展的方法,例如 if replacements.txt
contains;
s/XX/$(date +%F)/
然后;
$ echo "Today is XX" | sed -f replacements.sed
Today is $(date +%F)
在文件文本中包含双引号只会打印双引号。
有谁知道一种能够在sed
文件中使用变量的方法?