如果我想在bash函数($1
)的第一个参数上运行搜索/替换模式,是否可以将其直接传递给sed
,或者我是否必须执行{ {1}}?
答案 0 :(得分:4)
sed
期望文件名作为输入。如果它没有获得任何文件名,则从标准输入读取。如果您的文本(例如您的参数)不在文件中,则将其传递给sed
。
或者,您可以使用进程替换(bash功能),它允许文本作为文件出现在通常采用文件名/路径的程序中:
sed 's///g' <(echo "$1")
或者你可以使用这里的文件,如下:
FOO=$(sed 's///g' <<EOF
$1
EOF
)
或者这里的字符串(bash功能):
sed 's///g' <<< "$1"
在我看来,尽管使用管道操作员是完成工作的最简单直接的方法。希望这有助于让您了解其他可能性。