讀取使用文件列表
解析文件列表的信息,重命名文件
所以能夠看出來
讀取解析文件列表
不知道題主說的用來重命名文件列表的文件大致是什么樣子,那我就舉一個相對常見的例子吧,來看這個用作重命名的
第一列是源文件名,第二列是目標(biāo)文件名。也就是說要將第一列的文件名重新命名為第二列的文件名。看到這樣的分列,馬上我們就想到了awk命令?,F(xiàn)在這個問題就轉(zhuǎn)換成了這樣一個流程:
我們先做解析文件:
-F參數(shù)和后面的空格字符指定了域分隔符為空格,然后輸出兩個域的內(nèi)容,
解析文件列表的信息,重命名文件
在這里我們需要將上一節(jié)設(shè)計的命令的輸出結(jié)果作為參數(shù)傳遞給mv語句來實現(xiàn)重命名。這里用到的命令是xargs。xargs可以接收管道傳遞過來的字符串作為參數(shù)給后面的命令使用,比如:
這一句的意思就是將
man.txt
作為后面mv的第一個參數(shù),通過xargs傳遞給mv。xargs的-I參數(shù)指定后面的花括號{}作為參數(shù)的占位符,等同于傳遞過來的參數(shù)。
我們要實現(xiàn)的效果稍微復(fù)雜一點,因為我們的mv需要兩個參數(shù),要用到xargs的-n2參數(shù)來指定傳遞參數(shù)的個數(shù)為2。所以我們需要的語句的最終形式是這樣的:
catfilelist|awk-F'''{print$1;print$2}'|xargs-n2mv
看一下效果:
總結(jié)一下,批量重命名還有其它的辦法(我知道你又要說用while循環(huán)),但是我覺得這個應(yīng)該是比較方便的了。源文件和目標(biāo)文件的名字稍微處理一下,按照這種格式保存成為文本文檔,一串命令就搞定。
關(guān)于像這樣的批量重命名的操作,很多類似“運維面試100題”之類的文章里可能都有涉及,但是語焉不詳,命令生澀難記。學(xué)習(xí)Linux最好的辦法就是自己實際操作一下,更好的辦法就是
本文為作者原創(chuàng),嚴(yán)禁轉(zhuǎn)載,違者必究。