參考 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
-
去掉特定字符結尾 ( 后綴沒有 . )文章來源:http://www.zghlxwxcb.cn/news/detail-739873.html
1). 先去掉后綴 $ rename 's/\.txt$//' * 2). 然后假設操作錯誤,還連續(xù) 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,那個正則表達式就復雜一些
-
替換或去掉開頭或中間部分字符串文章來源地址http://www.zghlxwxcb.cn/news/detail-739873.html
$ 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
到了這里,關于linux 使用 rename 給文件名批量加后綴、換后綴和去掉后綴的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!