zoukankan      html  css  js  c++  java
  • rename 批量修改文件名简单用法

      有的时候我们需要批量创建文件做测试,为了做区分,一般只要稍稍动动文件名即可,MV命令既可以移动文件,也是可以修改文件名的,但批量修改文件名MV做不到,此时,我们可以用rename命令批量修改是蛮不错的方法,当然也有其他方法的,具体如下:

    语法:

    rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]  

    白话文:rename  参数 需要替换的字符串  含有的原字符替换成目标字符串  指定要改变文件名的文件列表或脚本

    常用参数介绍:

    -v  显示修改成功的文件名

    -n  不执行任何操作,用来测试rename过程,不直接运行,可以查看测试效果后,然后再运行

    -f   强制修改已经存在的文件

      Linux的rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C语言版本的了,因为Perl版本的支持正则处理,所以功能更加强大,基本上现在linux下默认的rename命令都是Perl版的。

    例如:将一下bqh目录下的所有文件名带有"_finished"的去掉。

    方法1:用rename命令

    rename "_finished" "" *.jpg

    方法二:用sed命令

     f=stu_1218_1_finished.jpg

    echo $f|sed 's#_finished##g'

    mv $f `echo $f|sed 's#_finished##g'`

    也可以写个脚本:

    #!/bin/sh
    for f in `ls *finish*.jpg`
    do
     mv $f `echo $f|sed 's#_finished##g'`
    done

     也可以用此命令批量替换:

    ls|sed -r 's#(^.*)_finished.*$#mv & 1.jpg#'|bash

    方法三:用awk命令

    ls *.jpg|awk -F "_finished" '{print "mv " $0,$1$2}'|bash

    通过以上方法来说,还是rename命令相对简单,可以根据场景需求而选。

  • 相关阅读:
    mongodb的学习-1-NoSQL
    mongodb的学习-3-在Mac上的安装配置
    面试题之算法与编程
    笔试题之javaweb
    笔试题之j2ee
    笔试题之代码查错
    笔试题之java基础
    javaweb笔记分享
    过滤器入门
    jsp入门
  • 原文地址:https://www.cnblogs.com/su-root/p/10159582.html
Copyright © 2011-2022 走看看