加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 根据名称中的符号重命名文件

发布时间:2020-12-16 01:47:21 所属栏目:安全 来源:网络整理
导读:我有很多这样的文件(图像)(文件名只由数字组成): 123456.jpg369258.jpg987123.jpg... 我需要在其他文件夹中复制每个文件夹(让我们将其命名为输出)并根据其名称中的数字重命名每个文件,如下所示(在伪代码中): outputFileName = String(filename[0]) + Strin
我有很多这样的文件(图像)(文件名只由数字组成):

123456.jpg
369258.jpg
987123.jpg
...

我需要在其他文件夹中复制每个文件夹(让我们将其命名为输出)并根据其名称中的数字重命名每个文件,如下所示(在伪代码中):

outputFileName = String(filename[0]) + String(filename[1]) + String(filename[2]+filename[3]) + ".jpg"

正如您所看到的,重命名涉及在文件名中获取某个符号,有时在文件名中获得一些符号的总和.

我需要制作一个脚本来批量重命名我在基于类似算法放置脚本的文件夹中的所有* .jpg,并在我前面提到的输出文件夹中输出重命名的.

这个脚本应该可以从macos终端和windows通过cygwin shell工作.

解决方法

我假设主要问题是:如何获取bash变量的特定字符以及如何在bash中执行添加.

>要从bash变量获取char,可以使用以下格式:${var:START_INDEX:LENGTH}.
>执行添加:$((ARG1 ARG2))

您生成的脚本可能是这样的:

#!/bin/bash

for f in *.jpg
do
  output=${f:0:1}${f:1:1}$((${f:2:1} + ${f:3:1})).jpg
  mv -- "$f" "$output"
done

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读