短语可以直接传递给sed吗?

时间:2017-08-08 15:33:29

标签: bash sed

如果我想在bash函数($1)的第一个参数上运行搜索/替换模式,是否可以将其直接传递给sed,或者我是否必须执行{ {1}}?

1 个答案:

答案 0 :(得分:4)

sed期望文件名作为输入。如果它没有获得任何文件名,则从标准输入读取。如果您的文本(例如您的参数)不在文件中,则将其传递给sed

或者,您可以使用进程替换(bash功能),它允许文本作为文件出现在通常采用文件名/路径的程序中:

sed 's///g' <(echo "$1")

或者你可以使用这里的文件,如下:

FOO=$(sed 's///g' <<EOF
$1
EOF
)

或者这里的字符串(bash功能):

sed 's///g' <<< "$1"

在我看来,尽管使用管道操作员是完成工作的最简单直接的方法。希望这有助于让您了解其他可能性。