linux 批量重命名 (你只要會用 js replace 函數)

注意:rename 命令有 C 語言 和 perl 兩個版本,這裏只介紹 perl 版本。javascript

clipboard.png




需求

今天工做的時候須要處理一批文件,具體命名形式是 a_b_c.xx,要把它們改爲 b_a_c.xx。php

mv 命令?

mv 命令一次只能操做一個文件,這樣效率就過低了。其實能夠結合管道操做完成java

clipboard.png


使用 rename

我想推薦的是 rename 命令,rename 命令是專門用來重命名操做的。linux 下的 rename 命令有兩種版本,一種是 C 語言版本, 一種是 perl 版。能夠使用 man rename 看一下本身的是什麼版本的。我電腦上的 perl 版本的,因此我就只介紹這個版本的用法啦。linux

基本用法:函數

rename 's/(查詢的正則)/(替換的內容)/' 文件

其中 's/(查詢的正則)/(替換的內容)/' 是 perl 的一種正則的形式,不懂不要緊,不影響咱們完成重命名操做,寫成 s(表明替換) 就好了。spa

剩下的,只要你會用 js String 的 replace 函數就 OK 拉。.net

若是把文件名當成是須要替換的字符串,那麼在 js 裏,咱們會這樣寫。unix

var filename = "a_b_c.txt"
filename.replace(/(.*?)\_(.*?)\_(.*?)/, '$2_$1_$3');
//"b_a_c.txt"

對應到 rename 命令中,就是code

clipboard.png

Cool!! 效果是和 js replace 函數是同樣的。這樣的話,知道這個用法,就已經能夠應付大多數的重命名需求了。ip

若是不行,請別找我...


參考文章:

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=159388

相關文章
相關標籤/搜索