您现在的位置是:首页 > 唯美句子

linux 使用 rename 给文件名批量加后缀、换后缀和去掉后缀

作者:峨乐时间:2024-04-05 12:35:38分类:唯美句子

简介  文章浏览阅读5.1k次。替换后部分: .txt \t(替换为 .txt)去掉特定字符结尾 ( 后缀没有 . )也就是: .txt 后缀替换成空。.zip 后缀替换为.txt 后缀。( 以.zip$结尾)加上 .zip 后缀。_linux批量修改文件名前缀

点击全文阅读

参考 Linux批量修改文件名前缀rename命令
$ rename -h

抄写他的一段文字

Substitution替换 s / expr1 / expr2 / [gi] /为分界符,可以使用其他任意字符为分界符 expr1,expr2都支持正则 expr1会被查找替换为expr2。 ig两个字母分别为正则的匹配模式:忽略大小写和全局匹配,否则默认换行为分界符。方括号[]包裹表示他们可不填。  Translation字符转译 类似于替换s,它可用于将一个字符串转换为另一个字符串,即字符转换。表达式如:y/charset1/charset2/ 如: 转换为小写:rename 'y/A-Z/a-z/' * 添加txt后缀:rename 's/$/\.txt/'  *

准备文件

 $ touch test{1..9}.txt  $ ls test1.txt  test2.txt  test3.txt  test4.txt  test5.txt  test6.txt  test7.txt  test8.txt  test9.txt

去掉.txt 后缀
也就是: .txt 后缀替换成空

 $ rename   's/\.txt$//'   * 解释 : 被替换部分:.txt$ ( 以 .txt 结尾) 替换后部分: 空 (替换为 空 ) $ ls test1  test2  test3  test4  test5  test6  test7  test8  test9

加上 .zip 后缀

 $ rename 's/$/\.zip/'  * 解释 : 被替换部分:$ ( 所有结尾字符)  替换后部分: \.zip (替换为 .zip ) $ ls test1.zip  test2.zip  test3.zip  test4.zip  test5.zip  test6.zip  test7.zip  test8.zip  test9.zip

.zip 后缀替换为.txt 后缀

 $ rename   's/\.zip$/.txt/'   * 解释 : 被替换部分:\.zip$( 以.zip$结尾) 替换后部分: .txt (替换为 .txt)   $ ls test1.txt  test2.txt  test3.txt  test4.txt  test5.txt  test6.txt  test7.txt  test8.txt  test9.txt

去掉特定字符结尾 ( 后缀没有 . )

 1). 先去掉后缀 $ rename   's/\.txt$//'   *  2). 然后假设操作错误,还连续 2 次错误,结果文件名后面就都带着2个zip了  $ rename 's/$/zip/'  * 解释 : 被替换部分:$( 所有结尾字符) 替换后部分: zip (替换为 zip ,忘了加 \.)  $ rename 's/$/zip/'  * $ ls test1zipzip  test2zipzip  test3zipzip  test4zipzip  test5zipzip  test6zipzip  test7zipzip  test8zipzip  test9zipzip  3). 去掉一个 zip  $ rename   's/zip$//'   * 解释 : 被替换部分: zip$ ( 以 zip 结尾)  替换后部分: 空 $ ls test1zip  test2zip  test3zip  test4zip  test5zip  test6zip  test7zip  test8zip  test9zip  4). 重复一次,即可去掉另一个zip  当然也可以一次就去掉 2 个 zip,那个正则表达式就复杂一些

替换或去掉开头或中间部分字符串

 $ ls test1  test2  test3  test4  test5  test6  test7  test8  test9  1). 开头 test 替换为 good  $ rename   's/^test/good/'   * 解释 : 被替换部分:^test( 以test开头) 替换后部分: good(替换为 good ) $ ls good1  good2  good3  good4  good5  good6  good7  good8  good9  2). 开头 good 替换为 testandtest ,为了下面替换中间字符 $ rename   's/^good/testandtest/'   * 解释 : 被替换部分:^good( 以good开头) 替换后部分: testandtest(替换为 testandtest ) $ ls testandtest1  testandtest3  testandtest5  testandtest7  testandtest9 testandtest2  testandtest4  testandtest6  testandtest8  3). 替换其中的 and 为 & $ rename   's/and/\&/'   * 解释 : 被替换部分:and( 文件名中的 and) 替换后部分: &(替换为 & ) $ ls 'test&test1'  'test&test3'  'test&test5'  'test&test7'  'test&test9' 'test&test2'  'test&test4'  'test&test6'  'test&test8'  4). 文件名都带引号了,因为 & 是个特殊字符 ? 给他换成下划线 _  $ rename   's/&/_/'   * 解释 : 被替换部分:&( 文件名中的 &) 替换后部分: _(替换为 _ ) $ ls test_test1  test_test3  test_test5  test_test7  test_test9 test_test2  test_test4  test_test6  test_test8  5) 只替换开头的 test $ rename   's/^test/good/'   * 解释 : 被替换部分:^test( 以test开头) 替换后部分: good(替换为 good ) $ ls good_test1  good_test3  good_test5  good_test7  good_test9 good_test2  good_test4  good_test6  good_test8

点击全文阅读

郑重声明:

本站所有活动均为互联网所得,如有侵权请联系本站删除处理

我来说两句