zoukankan      html  css  js  c++  java
  • Linux 下批量修改删除文件名中不想要的字段

    Linux 下批量修改删除文件名中不想要的字段

    本文重点

    ${var%ABC}  
    ${var#ABC}  
    % 表示从变量值尾部删除至ABC
    # 表示从变量值头部删除至ABC
    
    

    案例1:

    有如下文件想要删除_bak

    [root@hsun hook]# ls
    postCreateUser.sh               preCreateUser.sh
    postDeleteUser_bak.sh           preDeleteUser_bak.sh
    postDisableUser_bak.sh          preDisableUser_bak.sh
    postEnableUser_bak.sh           preEnableUser_bak.sh
    postUpdateUserAttribute_bak.sh  preUpdateUserAttribute_bak.sh

    然后使用shell

    for var in *_bak.sh; do mv "$var" "${var%_bak.sh}.sh"; done
    
    [root@hsun hook]# ls
    postCreateUser.sh           preCreateUser.sh
    postDeleteUser.sh           preDeleteUser.sh
    postDisableUser.sh          preDisableUser.sh
    postEnableUser.sh           preEnableUser.sh
    postUpdateUserAttribute.sh  preUpdateUserAttribute.sh

    个人理解:
    1、首先将文件夹内的文件提取到变量var中,然后使用mv命令将$var重命名为${var%_bak.sh}.sh

    2、"${var%_bak.sh}.sh"首先从变量的尾部删除到_bak.sh,此时所有文件都会删除_bak.sh然后在${var%_bak.sh}最后加上.sh就重命名完成。

    分步解读:

      单拿一个文件postEnableUser_bak.sh举例子

      第一步,首先拿到文件名为postEnableUser_bak.sh的文件

      第二步,删除文件后边的_bak.sh。此时文件名已变成了postEnableUser

      第三步,在修改好的文件名后边加.sh。最后文件名就成为了postEnableUser.sh

    所以它的文件名变化顺序为:

        postEnableUser_bak.sh  -->  postEnableUser  --> postEnableUser.sh

     

    实际案例2

    想要删除下列文件中的source-wuxi 并且替换成source-xibei.

    [root@hsun sss]# ls
    sink-xibei-auth.properties        source-wuxi-online.properties
    source-beijing-auth.properties    source-wuxi-project.properties
    source-wuxi-applyinfo.properties  source-wuxi-projectusers.properties
    source-wuxi-lshosts.properties    source-xibei-applaunch.properties
    source-wuxi-metrics.properties
    
    [root@hsun sss]# for var in source-wuxi*;do mv "${var}" "source-xibei${var#source-wuxi}";done
    [root@hsun sss]# ls
    sink-xibei-auth.properties         source-xibei-metrics.properties
    source-beijing-auth.properties     source-xibei-online.properties
    source-xibei-applaunch.properties  source-xibei-project.properties
    source-xibei-applyinfo.properties  source-xibei-projectusers.properties
    source-xibei-lshosts.properties

     

  • 相关阅读:
    laravel5.5
    yii2.0 Activeform表单部分组件使用方法
    putty连接远程局域网的MySql(不需要单独打开plink)
    关于 CentOS 自启动(服务、脚本)
    make -j 多核并行编译 导致笔记本过热 自动关机保护
    CentOS 7 引导 -- GRUB2
    Centos 7 拨号上网(PPPOE)
    Centos 7 意外断电如何处理
    Windows/Linux 生成iOS证书及p12文件
    git add -f
  • 原文地址:https://www.cnblogs.com/despotic/p/13565615.html
Copyright © 2011-2022 走看看