精华内容
下载资源
问答
  • linux文件批量改名时使用一些命令可以比较简单快捷1. 文件名前补0linux 下的rename命令可以使用正则表达式进行匹配。举例 for i in {1..100}; do touch ${i}.txt; done 在当前目录下生成文件 1.txt 2....

    linux下文件批量化改名时使用一些命令可以比较简单快捷


    1. 文件名前补0

    linux 下的rename命令可以使用正则表达式进行匹配。举例

    for i in {1..100}; do touch ${i}.txt; done

    在当前目录下生成文件

    1.txt
    2.txt
    3.txt
    ...
    10.txt
    11.txt
    100.txt

    想要在前面都补上0,即变成

    001.txt
    002.txt
    ...
    099.txt
    100.txt

    可以这样[1]

    i=1001; for f in *.txt; do mv "$f" ${i#1}.png; ((i++)); done

    其中i#1 是shell脚本中的字符串操作,即${string#substring} 是从变量$string的开头, 删除最长匹配$substring的子串。[2]

    2. 文件名前去0

    去掉上面文件前面的0直接使用rename命令即可,即正则表达式(类似于vim中的正则匹配),把前面的0换成空

    rename "s/^0{1,2}//g" *

    3. 文件名排序

    假设当前目录下有文件(仅说明情况,不在在意文件名后缀不同的小细节orz….)
    这里写图片描述
    我们想要排序成这样

    1.txt
    2.txt
    3.txt
    ...
    10.txt
    11.txt
    100.txt

    使用sort命令

    ls | sort -k1.1n

    其意思是按照第一个域的第一个索引到第一个域的最后一个索引的数值顺序排序。之所以有域的概念是比如有下面这种情况排序(文件内容排序),这个时候就有三个域了,详细参考[3]
    这里写图片描述

    再比如有文件

    ori_1.txt
    ori_2.txt
    ...
    ori_999.txt

    则是

    ls | sort -k1.5n

    其实n的也是sort的一个参数,只不过可以写到参数k里面,参考[4]中Clinton PierceDong Hoon 的回答


    refer:
    1. http://forum.ubuntu.org.cn/viewtopic.php?t=244095
    2. http://blog.csdn.net/shamoqiuyin/article/details/51888390
    3. 《sort命令的k选项大讨论》-linux命令五分钟系列之二十七 http://roclinux.cn/?p=1472
    4. https://stackoverflow.com/questions/357560/sorting-multiple-keys-with-unix-sort
    5. http://bbs.chinaunix.net/thread-3755930-1-1.html
    6. rename http://blog.sina.com.cn/s/blog_63fd1bdb01013lv6.html

    展开全文
  • 文件批量改名 这个有点不一样,这次得使用正则表达式来更换了 比如要将5.txt-10.txt改成5.c-10.c $ rename ‘s/.txt/.c/’ *.txt 解释一下:rename是Linux文件改名的指令之一,中间的是正则表达式,s表示匹配的...

    文件的批量改名
    这个有点不一样,这次得使用正则表达式来更换了
    比如要将5.txt-10.txt改成5.c-10.c

    $ rename ‘s/.txt/.c/’ *.txt

    解释一下:rename是Linux给文件改名的指令之一,中间的是正则表达式,s表示匹配的时字符串,’\’是用来给“.”转义的,表示将匹配到的.txt全部替换为.c,而最后的*.txt表示在当前文件夹下匹配所有形如xxx.txt的文件,将其的.txt全给改成.c。

    rename ‘s/world/hpy/’ world*
    表示将文件中所有world开头的文件全部改为hpy开头的文件名.

    展开全文
  • 需求:批量重命名文件,这些文件有共同特征,比如具有相同的字母,或没有共同特征,想统一重命名,修改它们相同位置上的字符等。以下是五个例子,供大家参考。1、把文件名字的第一个1个字母变为"q",其余不变复制...

    需求:

    批量重命名文件,这些文件有共同特征,比如具有相同的字母,或没有共同特征,想统一重命名,修改它们相同位置上的字符等。

    以下是五个例子,供大家参考。

    1、把文件名字的第一个1个字母变为"q",其余不变

    复制代码 代码示例:

    [root@jbxue ~]# for i in `ls`; do mv -f $i `echo $i | sed 's/^./q/'`; done

    sh脚本:

    复制代码 代码示例:

    #!/bin/bash

    for file in `ls`

    do

    newfile =`echo $i | sed 's/^./q/'`

    mv $file $newfile

    done

    2、修改前面5个字母为zhaozh

    复制代码 代码示例:

    [root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed 's/^...../zhaozh/'`; done

    3、修改后面5个字母为snail

    复制代码 代码示例:

    [root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed 's/.....$/snail/'`; done

    4、在前面添加 _hoho_

    复制代码 代码示例:

    [root@pps mailqueue]# for i in `ls`; do mv -f $i `echo "_hoho_"$i`; done

    5、所有的小写字母变大写字母

    复制代码 代码示例:

    [root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | tr a-z A-Z`; done

    说明:

    细心的朋友一定发现了,以上的例子就是“for 循环 + 组合命令处理”的思路来实现文件批量重命名的。

    展开全文
  • Linux中,当你想要改变一个文件名,使用mv命令就好了。然而mv不能使用通配符重命名多个文件。可以用sed、awk或者与xargs结合使用来处理多个文件的情况。然而,这些命令行即繁琐又不友好,并且如果不小心的话还很...

    在Linux中,当你想要改变一个文件名,使用mv命令就好了。然而mv不能使用通配符重命名多个文件。可以用sed、awk或者与xargs结合使用来处理多个文件的情况。然而,这些命令行即繁琐又不友好,并且如果不小心的话还很容易出错。你不会想要撤销1000个文件的错误名吧!

    当你想要重命名多个文件的时候,rename 工具或许是最简单、最安全和最强大的命令行工具。这个rename命令实际上是一个Perl脚本,它预安装在所有的现在Linux发行版上。

    下面是重命名命令的基本语法。

    代码如下:

    rename [-v -n -f]

    是Perl兼容正则表达式,它表示的是要重命名的文件和该怎么做。正则表达式的形式是‘s/old-name/new-name/’。

    ‘-v’选项会显示文件名改变的细节(比如:XXX重命名成YYY)。

    ‘-n’选项告诉rename命令在不实际改变名称的情况下显示文件将会重命名的情况。这个选项在你想要在不改变文件名的情况下模拟改变文件名的情况下很有用。

    ‘-f’选项强制覆盖存在的文件。

    下面,就让我们看下rename命令的几个实际例子。

    改变文件扩展名

    假设你有许多.jpeg的图片文件。你想要把它们的名字改成.jpg。下面的命令就会将.jpeg 文件改成 *.jpg。

    代码如下:

    $ rename 's//.jpeg$//.jpg/' *.jpeg

    大写改成小写,反之亦然

    有时你想要改变文件名的大小写,你可以使用下面的命令。

    把所有的文件改成小写:

    代码如下:

    # rename 'y/A-Z/a-z/' *

    把所有的文件改成大写:

    代码如下:

    # rename 'y/a-z/A-Z/' *

    0910e36ffde259406bad81a0704ff77d.png

    更改文件名模式

    现在让我们考虑更复杂的包含子模式的正则表达式。在PCRE中,子模式包含在圆括号中,$符后接上数字(比如$1,$2)。

    比如,下面的命令会将‘imgNNNN.jpeg’变成‘danNNNN.jpg’。

    代码如下:

    # rename -v 's/img_(/d{4})/.jpeg$/dan_$1/.jpg/' *.jpeg

    img_5417.jpeg renamed as dan_5417.jpg

    img_5418.jpeg renamed as dan_5418.jpg

    img_5419.jpeg renamed as dan_5419.jpg

    img_5420.jpeg renamed as dan_5420.jpg

    img_5421.jpeg renamed as dan_5421.jpg

    比如,下面的命令会将‘img_000NNNN.jpeg’变成‘dan_NNNN.jpg’。

    代码如下:

    # rename -v 's/img_/d{3}(/d{4})/.jpeg$/dan_$1/.jpg/' *jpeg

    img_0005417.jpeg renamed as dan_5417.jpg

    img_0005418.jpeg renamed as dan_5418.jpg

    img_0005419.jpeg renamed as dan_5419.jpg

    img_0005420.jpeg renamed as dan_5420.jpg

    img_0005421.jpeg renamed as dan_5421.jpg

    上面的例子中,子模式‘/d{4}’会捕捉4个连续的数字,捕捉的四个数字就是$1, 将会用于新的文件名。

    展开全文
  • linux 文件批量操作

    千次阅读 2018-10-29 11:38:19
     批量改名文件名  批量删除文件   1.批量创建文件   这里说下就目前我所掌握的两种方法:  1.使用seq 法: zhang@zhang-virtual-machine:~/Code/Shell$ ls batch.sh zhang@zhang-virtual-machine:~/...
  • ls | grep 'IMG' | sed 's/\([A-Z_]*\)\([0-9]*\)\(.*\)/\0 img_\2.jpg/g' |...把要改名文件列出来   sed 's/\([A-Z_]*\)\([0-9]*\)\(.*\)/\0 img_\2.jpg/g' 利用正则表达式匹配和替换,包括括号标记的用法,组成
  • Linux批量改名

    千次阅读 2012-01-08 20:00:26
    最近想导出上传一些照片...找了ubuntu下的GUI批量改名工具,可是由于软件依赖关系无法解决,不 能安装使用。后来找到了rename这条命令,也在网上找到了一些用法范 例: rename命令是Linux下功能非常强的
  • Linux 文件批量上传脚本

    千次阅读 2017-08-13 13:12:28
    第一类:直接在linux环境下输入命令模式  1)ftp username@remteip #回车之后需要输入密码   或者:ftp remoteip #回车后提示输入用户名和密码  2)sftp sftp=ssh+ftp  用法:登陆与ftp一样方式  3)ssh ...
  • Linux批量重命名文件

    千次阅读 2019-06-06 16:28:52
    Linux批量重命名文件通过rename命令批量重命名文件基本语法示例1. 改变文件扩展名2. 大写改成小写3. 更改文件名模式 通过rename命令批量重命名文件 基本语法 rename [-n -v -f] <pcre> <files> '...
  • windows下文件批量改名工具,支持类似于正则表达式的模糊改名
  • linux批量修改文件

    万次阅读 2016-10-09 09:19:15
    linux中,经常会遇到批量修改一系列文件情况,在此进行下使用整理: 从mv和rename命令的man文档中,可以看到如下信息: 引用 mv - move (rename) files rename - Rename files 也就是说,mv也能用于改名,但不...
  • linux文件批量创建与删除/改名

    千次阅读 2017-09-15 21:00:45
    初学linux,虽有图形界面但是主要操作还是通过命令行,而且有些操作通过命令行的方式比之图形界面会更加方便,就比如批量的处理,很容易便能使用一行命令就可批量文件进行操作。主要是使用通配符与正则表达式的...
  • linux批量重命名文件

    千次阅读 2018-07-02 16:26:23
    现实中我们常会给文件批量重命名, 利用linux的重命名命令rename可以做到这一点 可以看到rename的from、to、files三个参数 from:修改的内容,to:改成的内容,files:改的文件,通常用通配符表示 比如有这样一...
  • Linux批量重命名文件bash命令详解

    千次阅读 2015-07-21 09:38:05
    Linux批量重命名文件bash命令详解在Linux批量命名文件一般用bash命令 for file in xxx; do mv “$file” “${file%yyy}zzz”;done
  • 初学linux,总结了三种批量更改文件名的方法,应该是运维面试大概率会考到的内容借鉴了网上看来的思路要求 将文件名中的test字符替换为true一、renamerename命令作为最专业的工具在重命名方面当仁不让,方法十分简单...
  • 1、如果你得文件遵循特定规则比如[aaa]ccc.txt [aaa]bbb.txt 这个时候可以使用rename命令 rename [aaa] "" *.txt 2、如果你得文件遵循得规则有共性满足特定正则匹配[aaa]ccc.txt [bbb]bbb.txt [ccc]ccc.txt这个时候...
  • 文件批量改名 linux ubuntu

    千次阅读 2007-10-23 12:09:00
    问题:同以目录下有海量以日期命名文件,其中有的有后缀,有的以点结尾,如20020101.,20020102.,……,20020101.td,20020102.td…… 要求: 把所有以点结尾的加上后缀.ts 我的方法: #!/bin/bash for files in...
  • 文件批量改名和批量替换文件内容

    千次阅读 2009-12-03 15:09:00
    周海汉 /文09.12.3 文本操作中经常有整体查找和替换以及改名的操作,在linux下还是比较方便的,windows下则需要采用...批量改名采用命令rename rename 语法:rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]-v表示显
  • 学用awk, 在linux批量改名

    千次阅读 2012-05-22 17:35:12
    我需要的文件名为:  ic_male_head0xxxxx  ic_female_head0xxxxx 需要重命名。手动改名,太土了。使用AWK, 将下列代码保存为 iconRename.sh 代码如下: #!/bin/sh ls F* M* | awk
  • [Linux] 文件批量重命名 rename

    千次阅读 2018-05-08 17:31:01
    title: [Linux] 文件批量重命名 rename tags: grammar_cjkRuby: true OS : Ubuntu16.04 需求场景 修改 bootanimation 的时候美工发过来的文件太多了 , 需要批量重命名 方法 Linux 下的 rename 命令 ...
  • #有了这个是无敌了,命名不在是难事 # 初始化变量 i=0 # for 循环(看到这个for循环对比windows的,感动的哭了~_~) for name in *.png do # 注意加双引号 echo "$name" # 注意赋值方式 let i=i+1 echo "...
  • # 使用通配符批量创建 多个文件:$ touch zqunor{1..7}.txt # 批量将多个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件:$ rename 's/\.txt/\.c/' *.txt # 批量将多个文件的文件名改为大写:$ rename 'y/a-z/A-Z...
  • linux文件批量重命名

    千次阅读 2019-06-03 16:09:06
    举例某路径下有n个文件,文件名分别为:1,2,3,4,5 如果将该5个文件,加上后缀名.txt,可以使用如下命令: find ./ -type f -exec mv {} {}.txt \; 如果将文件中的txt后缀改为log,执行如下命令 find ./ -name '*....
  • 文件批量改名王1.3.exe

    2020-08-20 10:40:14
    可以批量修改对文件名进行增删改查,文件属性。针对需要对文件大量修改的小工具。操作简单,不捆绑任何软件和软件。
  • Linux改名/Linux批量改名/rename/mv/sed

    千次阅读 2018-05-07 16:35:51
    rename命令是Linux下功能非常强的的重命名工具,利用正则表达式使得其使用地非常灵活。 命令格式: rename [ -v ] [ -n ] [ -f ] perlexpr [ files ] perlexpr 是一种 Perl 脚本格式的正则表达式。 参数: ...
  • 用指定文件名前缀批量改变当前目录下所有文件名(扩展名必须是三个字符)。 用法示例: e:\temp\bren.exe mypic aabbcc.jpg ==> mypic001.jpg ddeeff.png ==> mypic002.png xxyyzz.jpg ==> mypic003.jpg ... (附...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,818
精华内容 4,327
关键字:

linux文件批量改名

linux 订阅