如何将重命名命令的结果分配给变量?

时间:2012-06-18 22:03:33

标签: bash ubuntu rename

我正在尝试将命令的输出设置为脚本中的变量。我整天都在搜索,看起来我的命令是正确的。但每次我运行我的脚本时,它只运行命令而不是仅将其分配给变量而不运行它。

这是脚本的相关部分:

ffname=$(rename 's/_1080p_12000//' *.*)
echo $ffname

我需要在脚本的另一部分使用ffname作为变量而不运行命令..但它似乎不想工作。有人有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可以向-n添加rename(无动作)选项以获取输出。

ffnames=($(rename -n 's/_1080p_12000//' *.* | awk '{print $1,$NF}'))

结果包含多个项目。所以你需要一个数组来保存它们。

然后在没有-n选项的情况下进行实际重命名。

答案 1 :(得分:0)

如果您正在使用Bash,则可以对填充的变量使用shell parameter expansion替换运算符来替换要删除的文件名部分。例如:

$ ffname=foo_1080p_12000.bar
$ echo "${ffname/_1080p_12000}"
foo.bar

但是,如果您愿意,还可以由您来执行实际的mv或重命名命令,或者将修改后的值重新分配回 ffname