简体   繁体   English

重命名以数值结尾的文本文件

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

Explanation 说明

  • 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.

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