gpt4 book ai didi

bash - 通过脚本重命名文件

转载 作者:行者123 更新时间:2023-11-29 09:39:49 24 4
gpt4 key购买 nike

我有一些文件命名不正确(扩展名添加到末尾两次)。我试图编写一个 bash 脚本来扫描目录并重命名它们,但它抛出了一个错误:

cannot move ‘/var/random/file/file1.avi.mp4’ to ‘{/var/random/file/file1.avi.mp4%.avi.mp4}.mp4’: No such file or directory

我只是想正确地重命名文件扩展名,但不确定错误出在哪里。例如,上述错误的文件扩展名应为 .mp4。以下是我的脚本,如果有人可以提供帮助,我将欠债......

#/bin/sh
for file in $(find /var/random/ -type f -name "*.avi.mp4"); do
mv "$file" "{$file%.avi.mp4}.mp4"
done

最佳答案

你的变量扩展有错别字:

"{$file%.avi.mp4}.mp4"

应该是:

"${file%.avi.mp4}.mp4"

但是你可能想看看rename (perl-rename)

perl-rename 's/[^.]+\.(?=[^.]+$)//' /var/random/*/*.avi.mp4

正则表达式将删除文件名中的倒数第二个扩展名:

/path/to/file/foo.bar.baz -> /path/to/file/foo.baz

关于bash - 通过脚本重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37165214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com