【问题标题】:rename tif files sequentially按顺序重命名 tif 文件
【发布时间】:2020-10-20 20:29:27
【问题描述】:

我正在尝试运行以下命令以顺序重命名以001 开头的图像文件。当我运行命令时出现错误

No such file or directory

我需要对我的脚本进行哪些更改才能使其运行?

echo "Enter the file path"
    read path
cd $path
num=0
for file in *.tif; do
    num=$((num+1))
    mv  "$file" "$(printf "%03d%s.tif" "$i")"
done

【问题讨论】:

    标签: rename filenames


    【解决方案1】:

    我建议对脚本进行一些修改,

    1. 错误“没有这样的文件或目录”的原因,这个for循环实际上并不是循环遍历所有文件,而是循环遍历一个值*.tif。如下更改行。

      for file in $(ls *.tif); do

    2. 需要编辑移动命令来重命名文件,更改如下。 (注意:${file%.} -> 这将删除扩展名并仅获取文件名)

      mv "$file" "$(printf "${file%.*}""%03d%s.tif" "$num")"

    最终的脚本将如下所示。

    echo "Enter the file path"
    read path
    
    cd $path
    num=0
    for file in $(ls *.tif); do
        num=$((num+1))
        mv "$file" "$(printf "${file%.*}""%03d%s.tif" "$num")"
    done
    

    希望对你有帮助,

    【讨论】:

    • 你能把你得到的确切错误贴给我吗,整行?
    • 这是我得到的错误 ls: *.tif: No such file or directory
    • 您输入的目录是否有.tif 文件?顺便说一句,你确定这个扩展名.tif,它的.tiff(有两个fs)对吗?因为这只是我们使用 ls 时的警告,文件不存在。
    • 我需要添加什么来获得这部分命令 mv "$file" "$(printf "${file%.*}""%03d%s.tif" "$num ")" ;在可变位置运行。 $路径
    • 你的意思是你想在重命名后将文件移动到不同的位置?如果是,您可以在 $(print without space. 之前添加${path}/
    猜你喜欢
    • 2017-04-10
    • 2015-01-24
    • 1970-01-01
    • 2014-04-22
    • 2017-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多