[英]Renaming Text Files That End In Numerical Values
I have fifteen files that are named ...cyclones_hrrr_( 1-16 ) and I need to rename them to cyclones_hrrr_( 0-15 ). 我有15个名为... cyclones_hrrr_( 1-16 )的文件,我需要将它们重命名为cyclones_hrrr_( 0-15 )。 I've written the following code using the mv command and it works but, I need something that's more efficient, perhaps a loop of some sort:
我使用mv命令编写了以下代码并且它可以工作但是,我需要更有效的东西,也许是某种循环:
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_1 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_0
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_2 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_1
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_3 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_2
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_4 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_3
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_5 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_4
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_6 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_5
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_7 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_6
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_8 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_7
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_9 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_8
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_10 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_9
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_11 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_10
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_12 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_11
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_13 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_12
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_14 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_13
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_15 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_14
mv ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_16 ${HOMEDIR}/hrrr/tmp/cyclones_hrrr_15
Try : 试试:
p="${HOMEDIR}/hrrr/tmp/cyclones_hrrr_"
for ((i=1; i<=16; i++)); do mv "$p$i" "$p$((i-1))" ; done
for i in {1..16}; do mv "cyclones_hrrr_$i" "cyclones_hrrr_$((i-1))" ; done
for i in {1..16}; do
This starts a loop. 这开始循环。 The loop is run for every value of the variable
i
from 1 to 16. 循环对变量
i
每个值从1到16运行。
mv "cyclones_hrrr_$i" "cyclones_hrrr_$((i-1))"
This moves the files. 这会移动文件。 If the files are not in the current directory, add the path.
如果文件不在当前目录中,请添加路径。
The shell allows simple arithmetic. shell允许简单的算术运算。 The expression
$((i-1))
returns i-1
. 表达式
$((i-1))
返回i-1
。
done
This signals the end of the loop. 这表示循环结束。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.