[英]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.