繁体   English   中英

在Shell中重命名以相反顺序编号的文件

[英]Rename files numbered in reverse order in Shell

我正在寻找一种在 shell 中进行此练习的实用方法。

我有这些文件:

1.txt 2.txt 3.txt 4.txt 5.txt [...] 50.txt

我想这样重命名

50.txt → 1.txt
49.txt → 2.txt
48.txt → 3.txt
...

以相反的顺序重命名它们。

创建一个renamed的目录以防止用新文件重写旧文件并尝试以下代码:

for i in {1..50}; do
    mv "$i.txt" "renamed/$(( 50 - $i + 1 )).txt"
done

这将反转文件名。

我在 bash 中使用这个脚本,它适用于不同的编号甚至其他命名格式:

#/bin/bash
#$1 - input folder, $2 output folder

INPUT_FILES=($(ls $1))
COUNT=$(ls $1 | wc -l)
COUNT_DEC=$((COUNT-1))
for i in $(seq 0 $COUNT_DEC); do
    ii=$((COUNT_DEC-i))
    echo "Copying: "$1"/"${INPUT_FILES[i]}" to "$2"/"${INPUT_FILES[ii]}
    cp $1/${INPUT_FILES[i]} $2/${INPUT_FILES[ii]}
done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM