【问题标题】:Renaming file numbers of a file name in Linux在Linux中重命名文件名的文件号
【发布时间】:2021-08-20 12:29:14
【问题描述】:

我有 500 个文件,名称为 file_0.yuv , file_1.yuv, file_2.yuv .....file_499.yuv

我想重命名文件,在每个文件名的文件编号中添加 500

例如:

file_0.yuv -> file_500.yuv
file_1.yuv -> file_501.yuv
file_2.yuv -> file_502.yuv
...
file_499.yuv -> file_999.yuv

我尝试使用:

for i in `seq 0 499`; do mv file_$i.yuv file_$i+500.yuv; done

但这不符合文件名的目的:file_0+500.yuv

谁能在这里给我建议正确的命令?

更新:

我正在使用 bash 脚本。

【问题讨论】:

  • edit您的问题并告诉我们您使用的shell。 (bash?)
  • @Bodo,我刚刚更新了我的问题。

标签: linux command rename mv


【解决方案1】:

如果您的 shell 是 bash,您可以使用 $(( ... )) 进行算术运算。

for i in `seq 0 499`; do mv file_$i.yuv file_$((i+500)).yuv; done

您应该更喜欢使用$(foo),而不是使用反引号`foo`

for i in $(seq 0 499); do mv file_$i.yuv file_$((i+500)).yuv; done

【讨论】:

    【解决方案2】:

    您也可以使用序列,但可能会损失一些可移植性。

    for s in {0..499}; do mv file_$i.yuv file_$((i+500)).yuv; done
    

    【讨论】:

      猜你喜欢
      • 2020-11-23
      • 2016-08-01
      • 2014-03-05
      • 2013-12-16
      • 1970-01-01
      • 2018-03-02
      • 1970-01-01
      • 2014-09-14
      • 2022-01-13
      相关资源
      最近更新 更多