如何将脚本文件作为定界文档传递给 sed?

如何将脚本文件作为定界文档传递给 sed?

这会将“a”转换为“A”。

sed 's/a/A/g' <(echo "foobar")
foobAr

这提供了使每个元音变为大写所需的命令:

$ cat << EOF
s/a/A/g
s/e/E/g
s/i/I/g
s/o/O/g
s/u/U/g
EOF

我想做的是扩展第一个示例,以便使每个元音大写,并使用此处的文档,如第二个示例中所示。有什么建议吗?

男人:

sed [选项]... {仅脚本,如果没有其他脚本} [输入文件]...

-f script-file, --file=script-file 将 script-file 的内容添加到要执行的命令中

答案1

您可以使用-withsed -f来指示应该从标准输入读取脚本:

$ cat << EOF | sed -f - <(echo foobar)
s/a/A/g
s/e/E/g
s/i/I/g
s/o/O/g
s/u/U/g
EOF
fOObAr

答案2

在这种情况下,tr适当的解决方案是:

$ echo foobar | tr [aeiou] [AEIOU]
fOObAr

相关内容