我有文件:
1.pgm ... 400.pgm连续数字从1到400全部采用相同的格式。
我想将它们复制到:
401.pgm ... 800.pgm,这是基本的,因为我需要更多的输入数据
我想知道在Linux中有没有快速的方法呢?
答案 0 :(得分:4)
如果您的文件具有此结构,则只需:
for file in *.pgm ; do
num=${file%%.pgm}
newnum=$(( $num + 400 )) #more portable than 'let', thx to @user2719058 for the reminder!
echo mv "${file}" "${newnum}.pgm"
done
并在您确信这样做符合您的要求后取出echo
答案 1 :(得分:1)
使用rename(1)
:
rename 's/(\d+)/400+$1/e' *.pgm
但这是一个单独的计划。
是一种不那么优雅的纯粹打击方式for f in *.pgm; do mv $f $((400+${f//[!0-9]/})).pgm; done