這可以有很多的解法,
一般而言,
透過系統上很多的程式語言可做得到,
通常是利用 regular expression 來處理。
而你這問題要改的檔名不複雜;
用現有的工具就可快速完成:
<pre class="c" name="code">ls *.doc | awk '{print "mv "$0" L"$0}' > changeMe.sh
(或者 ls QM*.doc)
這樣 changeMe.sh 的內容會是:
<pre class="c" name="code">mv QM00.doc LQM00.doc
mv QM01.doc LQM01.doc
mv QM02.doc LQM02.doc
然後 sh changeMe.sh 就如您所願完工。
大大,那如果該資料夾有 .doc .exe .pdf 時,也是一樣的更改方式嗎?
我試好了,謝謝
所提的「萬用字元」,算是 正則表達式 regular expression 裡一部份的簡化的運用。
也可參閱:有關 Regular Expression 正則表達式 的粗淺資源介紹
而 rename 也是 regex 的具體應用。
在 *nix 類的OS上,grep, sed, awk 都是內建的老工具,
一些問題,就可用簡單的語法就解決掉。
若要太複雜的語法,其實改用其他程式語言會比較省力,
只能說看狀況,運用不同的工具來處理。
可找一下 awk 的教學,一些單純的文字上的問題,
是方便的解決工具。
Linux 有這個指令可以用, 不知道 FreeBSD 有沒有:
<pre class="c" name="code">rename "QM" "LQM" QM*.doc
不曉得有此工具。
在 freebsd 有此 port:
http://www.freebsd.org/cgi/cvsweb.cgi/ports/sysutils/rename/
和我第一直覺 rename 想的一樣,等等再安裝看看,看有沒有和 Linux 的 rename 一毛一樣了~
一串命令搞定:
<pre class="c" name="code">ls -1 QM*.doc | sed 's/^\(QM\(.*\)\)$/\1 LQM\2/' | xargs -n 2 mv
這應該就等於樓上的 rename 了吧
這是 *nux 文字命令模式的威力,可以用一連串的命令藉著管道,串成想要的效果。
windows 視窗雖然美觀,但最終在一些軟體開發上,不得不推出 PowerShell 這種仿傚 *nux 文字命令的功能。顯見 windows GUI 再怎麼美觀,也不可能取代命令模式。
http://www.microsoft.com/taiwan/technet/columns/profwin/28-monad.mspx
哦!還有一個更重要的就是 Regular Expression 通用表示法。
這真是無敵好用的法寶,凡舉尋找、代換、分割、過濾檢查 ... 真是好用到一個不行。
RD 若精通此技術,工作效率至少可以增加 20%~40%。
通常我面試的 RD 若連這法寶都不知為何物時,大概也知道此人的斤兩了。
是呀,看來我要多多和各位大大學習了 ~