首页 > 系统相关 >shell脚本批量改名

shell脚本批量改名

时间:2024-08-27 18:25:50浏览次数:7  
标签:shell 改名 zip 批量 文件名 basename sed file 替换

shell脚本 批量修改文件名, 遍历文件夹中的*.zip, 修改文件名, 替换文件名中的abc为test, 替换dda为s5

   
#!/bin/bash

# 遍历当前目录下所有的.zip文件
for file in *.zip; do
    # 检查文件是否存在,避免空循环
    if [ -f "$file" ]; then
        # 使用sed命令替换文件名中的特定字符串
        # 使用basename命令获取不包含路径的文件名
        newname=$(basename "$file" | sed 's/abc/test/g' | sed 's/dda/s5/g')
        
        # 检查新文件名是否与原文件名不同,如果是则重命名
        if [ "$newname" != "$(basename "$file")" ]; then
            mv "$file" "$newname"
        fi
    fi
done

echo "批量重命名完成。"

这个脚本做了以下几件事:

  1. 使用for循环遍历当前目录下所有以.zip结尾的文件。
  2. 对于每个文件,使用basename命令获取其文件名(不包含路径)。
  3. 使用sed命令两次,分别将文件名中的abc替换为test,将dda替换为s5
  4. 检查生成的新文件名是否与原文件名不同,如果是,则使用mv命令重命名文件。
  5. 打印完成消息。

标签:shell,改名,zip,批量,文件名,basename,sed,file,替换
From: https://www.cnblogs.com/barrysgy/p/18383297

相关文章

  • Dynamics 365组织服务中的批量操作
    参考原文:https://learn.microsoft.com/en-us/power-apps/developer/data-platform/bulk-operations?tabs=sdk总结版本一次只能批量创建/更新同一个实体的不同记录,不同的还是得走多个。upsert是个丑东西。CreateMultipleRequestcreateMultipleRequest=new(){Targets=en......
  • 怎么快速把多个文件夹的照片批量导出到一个文件夹里?超级好用的三个方法
    在日常工作与生活中,我们经常会遇到需要整理大量照片的情况,尤其是当这些照片分散在多个文件夹中时,手动逐一复制粘贴不仅费时费力,还容易出错。幸运的是,现代科技提供了多种高效便捷的方法来应对这一问题。下面,我将详细介绍三种超级好用的方法,帮助你快速将多个文件夹的照片批量导出......
  • limu|P28|Batch Normalization批量规范化
    目录为什么需要批量规范化困难原因需求如何实现批量规范化公式使用部位为什么卷积层的通道维相当于全连接层的特征维?补充:为什么1*1卷积层相当于逐像素全连接层?深入思考BN的作用代码实现Q&ABatchNorm和LayerNorm的解释与对比为什么需要批量规范化困难训练深层神经网络并使其在较......
  • powershell 创建winform窗体 T1
    $app=[System.Windows.Forms.Application]$myForm=new-objectSystem.Windows.Forms.Form$myForm.Text="mywindow"$button1=new-objectSystem.Windows.Forms.Button$button1.Size=new-objectSystem.Drawing.Size-argumentlist75,23$button1.Text=&......
  • shell文本三剑客(grep、awk、sed)
    grep、sed和awk被称为Linux三剑客,是因为它们在文本处理和数据操作方面极其强大且常用。Linux三剑客在文件处理中的作用:grep(数据查找定位):文本搜索工具,在文件中搜索符合正则表达式的文本内容,并打印匹配的行。awk(数据切片):文本处理工具,主要用于对结构化数据进行格式化和拆分处......
  • 【Linux入门】shell基础篇——变量与运算
    文章目录shell中的变量概述变量的作用Shell变量名与变量值变量名变量值变量的作用范围局部变量(LocalVariables)全局变量(GlobalVariables)注意变量的类型1.环境变量(EnvironmentVariables)2.位置变量(PositionalVariables)3.预定义变量(PredefinedVariables)补充:自定......
  • xshell使用跳板机ssh连结远程后使用SFTP
    xshell连结跳板机后,再使用ssh连结到真实机器,SFTP只能显示原跳板机的目录,不能显示真实目录.可以使用隧道,代理来显示真实目标机器的目录.参考:https://blog.csdn.net/qq_43797186/article/details/1236690711.在原跳板机的ssh连结,增加隧道ssh连结属性->连结->SSH->隧道......
  • 图片工具箱:一键批量加水印,守护创意,提升效率!
    前言你是否曾在处理海量图片时,被繁琐的步骤和漫长的等待时间折磨得苦不堪言?是否梦想过拥有一款神器,能让你的图片处理工作变得轻松愉快,从此告别加班的烦恼,迎接升职加薪的曙光?那么,让我向你隆重介绍——图像工具箱!有了这款工具箱,将会发现,原来图像处理可以如此简单高效。它不仅......
  • Server monitoring shell
    #!/usr/bin/envbashREMOTE_OK=remote_okREMOTE_FAIL=remote_failTIMESTAMP=`date+%F%H%M%S`CURRENT_HTML=/var/www/html/${TIMESTAMP}.htmlCURRENT_INDEX=/var/www/html/index.htmlLN=/bin/lnSERVER_LIST=server_listPASS=passcat<<EOF>$CURRENT_HTM......
  • ldap shell
    #!/usr/bin/envbashNUM1=10000000NUM2=3600NUM3=24NUM4=90if[-syad];then>yadfi/usr/bin/ldapsearch-Hldap://xxx.com-YGSSAPI-N-bou=xxx,dc=xxx,dc=com'(&(objectClass=user)(userAccountControl=512))'|greppwdLastSet|a......