试图替换bash参数

时间:2018-05-22 05:45:38

标签: bash sed

我一直试图找出一种方法来将特定的bash参数替换为同一列表中的另一个参数。例如,如果我有类似的东西:

/home/text.c /bin/mv {} ~/.trash

我想用我拥有的文件替换{},在本例中为text.c

到目前为止,我有这个:

sed -i 's/{}/"$1"/g' "$@"

我的假设是它会查看参数(“$ @”),查找{}并将其替换为第一个参数(/home/text.c)。但是,我只会回来:

sed: -e expression #1, char 2: extra characters after command
/bin/mv: cannot stat '{}': No such file or directory 

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以在$*上使用BASH字符串替换,这是您所有参数的字符串形式:

local args="$*"

echo "${args/\{\}/$1}"