精华内容
下载资源
问答
  • 批量修改文件名

    2015-10-22 22:00:00
    系统环境: Unbuntu 14.10 待解决的问题:  由于前期的大量的代码文件,出自不同...我很懒的,怎么能这么修改,对吧! 解决思路:  通过文件目录的遍历,使用正则表达式,匹配目标文件名,并修改文件名称。 ...

    系统环境: Unbuntu 14.10

    待解决的问题:

      由于前期的大量的代码文件,出自不同码农之手,风格各异,文件名称命名规则风格不同。现在需要统一文件命名规则,问题就是,存在较多的文件名需要修改,而且文件嵌套很深,有多种命名规则。手动一个一个文件的修改....我很懒的,怎么能这么修改,对吧!

    解决思路:

      通过文件目录的遍历,使用正则表达式,匹配目标文件名,并修改文件名称。

     

    解决方法:

      1,修改文件名

    rename ‘s/^s/S/' *

      说明: 当前文件夹下,将所有以小写s开头的文件,重新命名为以大写S开头的文件。其中,’s/^s/S/' 为正则表达式,根据需要替换修改。

     

      

     

    转载于:https://www.cnblogs.com/xiwang/p/4902949.html

    展开全文
  • 看到好多人问如何批量修改文件名,主要问题包括以下类型: 1.在一个文件夹内或者子文件夹内,文件名中相同的部分名字统一删掉 2.在一个文件夹内或者子文件夹,有很多文件名种有关键字要替换成某个文字 3.如何批量...

    看到好多人问如何批量修改文件名,主要问题包括以下类型:

    1.在一个文件夹内或者子文件夹内,文件名中相同的部分名字统一删掉

    2.在一个文件夹内或者子文件夹,有很多文件名种有关键字要替换成某个文字

    3.如何批量去掉大量文件名中相同的前缀?

    其实归纳了一下就是批量动文件名,有人说用鼠标点击挨个挨个改就有点牛!

    试问一下上万个文件,鼠标都要点废几个

    下面以excel表文件为例,讲一下怎么快速的搞定文件名的操作,适用于任何文件

    下面我们用到一个软件,批量文件改文件名系统

    软件很简单打开后,看到有【打开文件夹/打开含子文件夹】

    打开文件夹:是取当前文件夹的文件操作

    打开子文件夹:是不仅打开当前文件夹,包括文件夹子文件夹的所有文件

    下面我们导入文件

    打开文件后,文件关键字哪里填写我们要删掉或者要更改的关键字

    软件分为两类:删除关键字和替换关键字

    删除关键字勾选,选择【一键处理】文件名包含的关键字,文件名不包含关键字的文件不会被动

    替换关键字,要填写更改为新的名字,然后选择【一键处理】

    文件可以迅速的处理的干干净净,包括空格、短横线、等等,处理速度非常的快0.1秒处理30个文件

    几万个文件也就几分钟的事情,有特殊的需求可以在文章下方留言,我想想怎么优化的更完善

    所以处理前文件确认好已备份或者最好测试后再批量操作,操作不可撤回

    废话不多说直接上软件,要新功能可以在文章下方留言或者私信我 

    CSDN土豪下载:https://download.csdn.net/download/binbin321/12023151

    云盘下载:https://share.weiyun.com/vTIBWREs

    展开全文
  • 在Linux环境下修改文件名可以有不同的命令方式,比如rename、mv都可以进行修改,如果用户正在了解这方面的知识,可以阅读下文了解Linux修改文件名以及批量修改文件名的方法。对于单个的文件,可以直接使用命令,那...

    在Linux环境下修改文件名可以有不同的命令方式,比如rename、mv都可以进行修改,如果用户正在了解这方面的知识,可以阅读下文了解Linux修改文件名以及批量修改文件名的方法。

    对于单个的文件,可以直接使用命令,那如果有大量的类似格式的文件名需要修改成其他格式的,该如何呢?

    比如某次测试后,保存的文件为 Lan1.txt,Lan2.txt,……Lan100.txt

    这一百个文件需要在前面添加前缀变成类似 ch7_Lan1.txt,如果你还想使用mv来一个一个多痛苦啊。

    当前文件夹下,文件修改有四种方式:

    1、使用while Loop加${//}来实现Lan到ch7_Lan的替换。

    01find . -name "Lan*txt" -type f | read files

    02do

    03new=

    04mv

    05done

    复制代码

    find . -name "Lan*txt" -type f | read files

    do

    new=

    mv

    done

    2、充分利用awk的分隔符功能来实现:

    01ls *Lan* | awk 'BEGIN{FS="Lan";OFS="ch7_Lan"}{printf "mv "$0" ";$1=$1;print $0}' | sh

    复制代码

    ls *Lan* | awk 'BEGIN{FS="Lan";OFS="ch7_Lan"}{printf "mv "$0" ";$1=$1;print $0}' | sh

    首先,修改FS和OFS,输入和输出的分隔符。

    其次,使用awk中的命令,拼接“mv Lan1.txt ch7_Lan1.txt”这条命令。

    最后,使用|sh来执行一个shell命令来完成mv动作。

    其中,$1=$1是必须的,这个是完成Lan===> ch7_Lan的关键(其实是可以使用$2=$2等来替换,只要一个赋值动作而已)

    奇怪的是,难道没有赋值动作,分隔符的改变就不能检测出来么?

    3、使用awk的内置命令,gsub和system来实现替换和命令执行。

    01ls "*Lan*" | awk '{org=$0;gsub("Lan", "ch7_Lan");system("mv "org" "$1)}'

    复制代码

    ls "*Lan*" | awk '{org=$0;gsub("Lan", "ch7_Lan");system("mv "org" "$1)}'

    首先保存原始的数据。

    其次修改 Lan为 ch_Lan

    最后执行mv动作

    其中,最后system命令"mv "org"" 需要使用""来标记。

    而且org也需要"",并且不能使用$org

    1、对于awk命令中的变量,不需要用$来引用。

    2、在system()中,变量需要使用""来标识,否则就被当成字符串来处理。

    3、如果对变量进行$来进行引用,就会出现两种情况:

    3.1、正常情况下,可以被当成位置参数来引用。比如 NF表示当前行的记录个数。比如echo "a b c d" | awk '{print NF, $NF}',这个会打印两个变量,第一个是NF本身,其值为4;第二个是第四个位置参数,也就是$4,也就是d

    3.2、非正常情况下:

    3.2.1、如果变量本身就是个字符串。比如echo "a b c d" | awk '{va=“varA“;print va, $va}',因为后一个参数$va,由于va是个字符串,因此$va打印的就是$0

    3.2.2、如果变量本身就是个数字,但是该值大于NF。 比如echo "a b c d" | awk '{va="varA";vb=6;print va, $va, vb, $vb, 1}',因为$vb相当于是$6,但是位置参数$6没有,因此打印的就是个空字符。

    01[martin@TSPerPacketsTest]$ echo "a b c d" | awk '{print NF, }'

    024 d

    03[martin@TSPerPacketsTest]$ echo "a b c d" | awk '{va="varA";print va, }'

    04varA a b c d

    05[martin@TSPerPacketsTest]$ echo "a b c d" | awk '{va="varA";vb=6;print va, , vb, , 1}'

    06varA a b c d 6 1

    复制代码

    [martin@TSPerPacketsTest]$ echo "a b c d" | awk '{print NF, }'

    4 d

    [martin@TSPerPacketsTest]$ echo "a b c d" | awk '{va="varA";print va, }'

    varA a b c d

    [martin@TSPerPacketsTest]$ echo "a b c d" | awk '{va="varA";vb=6;print va, , vb, , 1}'

    varA a b c d 6 1

    4、使用sed中的s来进行替换,然后使用e命令来执行:

    01[martin@TSPerPacketsTest]$ ls *Lan* | sed -r -n 's/(.*)Lan(.*)/mv & \1ch_Lan\2/e'

    复制代码

    [martin@TSPerPacketsTest]$ ls *Lan* | sed -r -n 's/(.*)Lan(.*)/mv & \1ch_Lan\2/e'

    关于sed的选项,使用 -r和 -n

    -r 来启用后续可以使用 command,比如 mv

    -n 来关闭 patten space中内容的显示。

    关于sed的 command,使用e。如此在使用s命令完成 pattern space中 Lan到 ch7_Lan的修改后,启动shell来执行 pattern space中的 mv指令。

    如果这里使用 p,标记仅仅显示 pattern space中的指令而已。

    如果对于某目录下的所有文件,进行文件名修改,有两种方式:

    1、汇集awk的 FS/OFS和 gsub/system来实现。有点类似于综合上述2,3两种方式。

    01[martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | awk 'BEGIN{FS="/";OFS="/"}{org=$0;gsub("Lan", "ch7_Lan", );system("echo "org" "$0)}'

    复制代码

    [martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | awk 'BEGIN{FS="/";OFS="/"}{org=$0;gsub("Lan", "ch7_Lan", );system("echo "org" "$0)}'

    为了实现所有目录下的文件名进行修改,但是又不影响路径上文件夹名。

    首先,标记FS和OFS都为"/"。

    其次,使用gsub时候,指定仅仅修改当前行中最后一个记录,使用$NF来指定。

    当然,对于FS和OFS的指定,可以不放置在 BEGIN中实现,比如:

    01[martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | awk -vF=/ -vOFS=/ '{org=$0;gsub("Lan", "ch7_Lan", );system("echo "org" "$0)}'

    02[martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | awk -F/ -vOFS=/ '{org=$0;gsub("Lan", "ch7_Lan", );system("echo "org" "$0)}'

    复制代码

    [martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | awk -vF=/ -vOFS=/ '{org=$0;gsub("Lan", "ch7_Lan", );system("echo "org" "$0)}'

    [martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | awk -F/ -vOFS=/ '{org=$0;gsub("Lan", "ch7_Lan", );system("echo "org" "$0)}'

    2、或者使用 sed。

    01[martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | sed -r -n 's/(.*)([^\/]*)Lan([^\/]*)$/mv & \1\2ch7_Lan\3/e'

    复制代码

    [martin@TSPerPacketsTest]$ find . -name "*Lan*" -type f | sed -r -n 's/(.*)([^\/]*)Lan([^\/]*)$/mv & \1\2ch7_Lan\3/e'

    其中的各个 option和 command参数,上述都已经有介绍了。

    这里,针对文件夹名和文件名,使用了简单的sed内置的正则表达式来进行匹配而已,来实现仅仅对文件名的修改。

    以上步骤在Linux修改文件名以及批量修改文件名的实现方式,是在shell中使用find、exec、xargs、mv命令组合批量替换文件名中的字符串。

    展开全文
  • 有两个目录,每个目录里都有大量的文件,那怎么才能找出第二个文件夹里的比第一个文件夹里面的文件少的文件呢?总不能一个一个对比把?针对这个目的开发此工具。代码可以经过你自己的修改后使用。我的目的:第一个...
  • 我们在日常的系统维护中,经常会遇到要批量读取指定目录下的文件名来进行操作,比如:循环读取所有文件的内容、批量修改文件名等等。一旦大量的文件中,若其文件名中带有空格,则在我们读取文件名时就会遇到麻烦啦,...

    我们在日常的系统维护中,经常会遇到要批量读取指定目录下的文件名来进行操作,比如:循环读取所有文件的内容、批量修改文件名等等。

    一旦大量的文件中,若其文件名中带有空格,则在我们读取文件名时就会遇到麻烦啦,譬如……

    在Linux系统中,我们一般使用以下方法来遍历某个目录下的文件:

    for file in $(ls *);

    do

    echo ${file}

    done

    但是,由于for语句是按照单词为单位(即空格)进行分割的,因此,当文件名称中有空格的时候,就会出现一个文件名被分成两个或者多个文件来读的情况,这就会影响正常的处理流程了,比如,某个目录下有下面4个文件:

    a.txt

    b.txt

    c .txt

    d e f.txt

    上面的脚本执行的结果就变成

    a.txt

    b.txt

    c

    .txt

    d

    e

    f

    .txt

    了。

    那么遇到这种情况怎么办?其实我们我可以用while语句加上read命令来轻松实现。

    ls * | while read fileName;

    do

    echo “${fileName}”

    done

    即先把每个文件的名称读取到变量fileName中,然后再输出到屏幕上,当然你也可以在这个while循环中完成你对每个文件的操作了。

    结合上面的思路,来写个小示例(将当前目录下所有带空格的文件名中的空格去掉),代码实现如下:

    ls * | while read tmp_file_name;

    do

    old_file_name=${tmp_file_name}

    new_file_name=`echo ${old_file_name} | tr -d ‘ ‘` (字符串中去除空格,也可以用sed来实现)

    mv “${old_file_name}” “${new_file_name}”

    done

    展开全文
  • 大家好,我现在遇到一个问题,手里有50,000多url,需要一一下载下来,由于都是国外的网址,因此相当慢,现在想弄成多线程抓取网页,不过我的代码无法正常运行,请达人不吝指教,多谢了,...但怎么修改我还不知道哦~
  • GIT

    2019-04-29 19:10:40
    思考:我们一般更新某个文档时,想保留旧的文件,一般人该怎么做?答:先将旧文件复制一份成一个新名称的文件,新文件名中附上当天的日期、时间。这样做的优点是我们可以随时找到某天修改的文件。缺点是这个文件的...
  • 但难免也存在大量的冗余文件,进行全部备份,也将占用不必要的磁盘空间,在使用FileGee设置备份任务时,可以设置文件过滤,选择需要备份或同步的部分文件,如是否包含子目录、跳过空目录、根据文件名过滤、对文件...
  • 上传以后的文件名是FastDfs服务端根据一定规则生成的,不可以修改文件名,因此也不可以由客户端指定上传的路径。 客户端只能控制把文件上传到哪一个分组(Group). 一般处理方法是把服务端返回的文件路径记录到数据库...
  • 为了达到全面支持XE2的目的,Raize公司对源代码进行了大量的改动,除支持Delphi 64bit编译外,对XE2新增的一些特性如VCL Style等也进行了支持。 刚刚到手,迫不及待安装试用,却发现了Raize Components 6.0存在的一...
  • 修改完一个以后,只要点击“保存到文件”按钮,就可以将这些信息嵌入MP3当中,按“上一首”、“下一首”即可继续修改邻近文件的标签信息,达到半批量修改目的。  物理删除MP3文件的疑惑  有的人很奇怪,为什么...
  • 比如修改文件名成ttl-foo-name-changed.jar,则还需要加上Java的启动参数:-Xbootclasspath/a:path/to/ttl-foo-name-changed.jar。 或使用v2.6.0之前的版本(如v2.5.1),则也需要自己手动通过-Xbootclasspath JVM...
  • 深入学习shell脚本艺术

    热门讨论 2011-02-22 04:01:01
    利用修改文件名,来转换图片格式 9-12. 模仿getopt命令 9-13. 提取字符串的一种可选的方法 9-14. 使用参数替换和error messages 9-15. 参数替换和"usage"messages 9-16. 变量长度 9-17. 参数替换中的模式匹配 9-18. ...
  • 电脑蓝屏对照码

    2019-05-05 14:16:40
    ◆错误分析:一个与系统内存管理相关的错误, 比如:由于执行了大量的输入/输出操作, 造成内存管理出现问题: 有缺陷的驱动程序不正确地使用内存资源; 某个应用程序(比如:备份软件)被分配了大量的内核内存等. ◇解决方案...
  • WIN XP蓝屏代码大全

    2013-08-08 12:29:21
    ◆错误分析:一个与系统内存管理相关的错误, 比如:由于执行了大量的输入/输出操作, 造成内存管理出现问题: 有缺陷的驱动程序不正确地使用内存资源; 某个应用程序(比如:备份软件)被分配了大量的内核内存等. ◇解决方案...
  • .htaccess

    2007-07-19 01:51:18
    真正困难的可能是文件的保存,因为.htaccess是一个古怪的文件名(它事实上没有文件名,只有一个由8个字母组成的扩展名),而在一些系统(如windows 3.1)中无法接受这样的文件名。在大多数的操作系统中,你需要做的...
  • 可以自由传播且可任人修改、充实、发展,开发者的初衷是要共同创造一个完美、理想并 可以免费使用的操作系统。 我们并不能使同学们通过这次系列讲座成为一个 UNIX 类操作系统的高手,这次系列 讲座的目的就是在...
  • 注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。 Rem Message Sample:@Rem Here is the description. 5.Pause 命令 运行 Pause 命令时,将显示...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    2.19 程序运行正确,但退出时却“coredump”(核心转储)了,怎么回事? 联合 2.20 结构和联合有什么区别? 2.21 有办法初始化联合吗? 2.22 有没有一种自动方法来跟踪联合的哪个域在使用? 枚举 2.23 枚举...
  • o 3.14 程序运行正确, 但退出时却 ``core dump''了,怎么回事? o 3.15 可以初始化一个联合吗? o 3.16 枚举和一组预处理的 #define 有什么不同? o 3.17 有什么容易的显示枚举值符号的方法? * 4. 表达式 o...
  • 2.19 程序运行正确,但退出时却“core dump ”(核心转储)了,怎么回事? 29 联合 30 2.20 结构和联合有什么区别? 30 2.21 有办法初始化联合吗? 30 2.22 有没有一种自动方法来跟踪联合的哪个域在使用? ...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    2.19 程序运行正确,但退出时却“core dump ”(核心转储)了,怎么回事? 29 联合 30 2.20 结构和联合有什么区别? 30 2.21 有办法初始化联合吗? 30 2.22 有没有一种自动方法来跟踪联合的哪个域在使用? ...
  • 你必须知道的495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    2.14 程序运行正确, 但退出时却“core dump”了,怎么回事? . . . . . 10 2.15 可以初始化一个联合吗? . . . . . . . . . . . . . . . . . . . . . . . 10 2.16 枚举和一组预处理的#define 有什么不同? . . . . ....
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    独立打包,保证可解压,内含大量源码,网上搜集而来。一共10几包,每个包几十兆。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    独立打包,保证可解压,内含大量源码,网上搜集而来。一共10几包,每个包几十兆。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    独立打包,保证可解压,内含大量源码,网上搜集而来。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    独立打包,保证可解压,内含大量源码,网上搜集而来。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

怎么大量修改文件名