0

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

这是脚本的相关部分:

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

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

4

2 回答 2

1

您可以添加-n(no-act) 选项rename来获取输出。

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

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

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

于 2012-06-18T22:26:04.153 回答
0

如果您使用的是 Bash,则可以在填充的变量上使用shell 参数扩展替换运算符来替换要删除的文件名部分。例如:

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

但是,执行实际的 mv 或 rename 命令,或者根据需要将修改后的值重新分配回ffname 将由您自己决定。

于 2012-06-24T15:46:31.607 回答