將檔案名稱整批更改的問題

歡迎提問 debian desktop 相關問題,何謂 desktop ? 舉凡您日常生活會用到的部份,如上網 ( www 、 bbs ..) 、程式設計、繪圖...等等。 通常以 X Window 環境底下問題為主。

將檔案名稱整批更改的問題

文章pooh9038 » 週一 9月 29, 2003 11:11 am

小弟一檔案夾中有以下的檔案:

special_result_e.pl?yyyy=1885&yyyymm=1&dd=10&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=11&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=12&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=13&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=14&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=15&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=16&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=17&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=18&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=19&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=1&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=20&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=21&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=22&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=23&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=24&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=25&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=26&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=27&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=28&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=29&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=2&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=30&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=31&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=3&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=4&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=5&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=6&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=7&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=8&name=
special_result_e.pl?yyyy=1885&yyyymm=1&dd=9&name=

因要按排列次序,現想將special_result_e.pl?yyyy=1885&yyyymm=1&dd=1&name= 至
special_result_e.pl?yyyy=1885&yyyymm=1&dd=9&name= 的九個檔案名稱
改為special_result_e.pl?yyyy=1885&yyyymm=1&dd=01&name=
至special_result_e.pl?yyyy=1885&yyyymm=1&dd=09&name=

不知有沒有簡便的方法?是否須用scripts不可?

曾看過rename的用法,覺得好像只能在檔案名稱的頭末兩端更改,而不能在中段插入文字.
OS:Debian 5.0 stable(kernel 2.6.26-2-686)
Motherboard:Pcchips M848A
CPU:Duron 850 Mhz
Ram:Kingston 512Mb DDR
Harddisk:Segate 60G(7200rpm)
CD-RW:LG CR-RW CED-8120B
Display:GeforceFX5200
Lan:SIS900
Sound:SIS7012(CMI9739)
Monitor:Compucon H530S 15"LCD
pooh9038
懵懂的國中生
懵懂的國中生
 
文章: 153
註冊時間: 週二 10月 15, 2002 11:17 am
來自: 香港

re:將檔案名稱整批更改的問題

文章阿信 » 週一 9月 29, 2003 12:21 pm

這種檔名就要小心一點,在讀入的過程請用" "包住,不然遇到?/&等文字會出錯。

另外...只有九個檔案要改,手動也不算太久,用script的話,小弟的笨方法如下

for i in 1 2 3 4 5 6 7 8 9
do
mv "special_result_e.pl?yyyy=1885&yyyymm=1&dd=$i&name=" "special_result_e.pl?yyyy=1885&yyyymm=1&dd=0$i&name="
done
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:將檔案名稱整批更改的問題

文章pooh9038 » 週一 9月 29, 2003 1:40 pm

其實小弟的檔案的分佈情況如下:

special_result_e.pl?yyyy=1885&yyyymm=X&dd=Y&name=

其中X是代表月份,即1,2,3,4,5,6,7,8,9,10,11,12
現小弟欲改為01,02,03,04,05,06,07,08,09,10,11,12

其中Y是代表日期,即1,2,3,4,5至31
現小弟欲將1,2,3,4至9改為01,02,03,04至09

只有這樣,那些special_result檔案才能由1月1日順序排列至12月31日.

小弟將阿信兄的scripts改為

for i in 1 2 3 4 5 6 7 8 9
do

mv "special_result_e.pl?yyyy=1884&yyyymm=$i&dd=$i&name=" "special_result_e.pl?yyyy=1884&yyyymm=0$i&dd=0$i&name="

但結果只有九個名稱更改了:

special_result_e.pl?yyyy=1884&yyyymm=01&dd=01&name=
special_result_e.pl?yyyy=1884&yyyymm=02&dd=02&name=
special_result_e.pl?yyyy=1884&yyyymm=03&dd=03&name=
special_result_e.pl?yyyy=1884&yyyymm=04&dd=04&name=
special_result_e.pl?yyyy=1884&yyyymm=05&dd=05&name=
special_result_e.pl?yyyy=1884&yyyymm=06&dd=06&name=
special_result_e.pl?yyyy=1884&yyyymm=07&dd=07&name=
special_result_e.pl?yyyy=1884&yyyymm=08&dd=08&name=
special_result_e.pl?yyyy=1884&yyyymm=09&dd=09&name=

其它例如1月11日仍舊是special_result_e.pl?yyyy=1884&yyyymm=1&dd=11&name=
2月1日仍舊是special_result_e.pl?yyyy=1884&yyyymm=2&dd=1&name=

不知錯在什麼地方?

小弟用了Debian已超過一年,仍舊覺得很菜. :ooops:
OS:Debian 5.0 stable(kernel 2.6.26-2-686)
Motherboard:Pcchips M848A
CPU:Duron 850 Mhz
Ram:Kingston 512Mb DDR
Harddisk:Segate 60G(7200rpm)
CD-RW:LG CR-RW CED-8120B
Display:GeforceFX5200
Lan:SIS900
Sound:SIS7012(CMI9739)
Monitor:Compucon H530S 15"LCD
pooh9038
懵懂的國中生
懵懂的國中生
 
文章: 153
註冊時間: 週二 10月 15, 2002 11:17 am
來自: 香港

re:將檔案名稱整批更改的問題

文章阿信 » 週一 9月 29, 2003 2:46 pm

pooh9038 寫:其實小弟的檔案的分佈情況如下:

special_result_e.pl?yyyy=1885&yyyymm=X&dd=Y&name=

其中X是代表月份,即1,2,3,4,5,6,7,8,9,10,11,12
現小弟欲改為01,02,03,04,05,06,07,08,09,10,11,12

其中Y是代表日期,即1,2,3,4,5至31
現小弟欲將1,2,3,4至9改為01,02,03,04至09

只有這樣,那些special_result檔案才能由1月1日順序排列至12月31日.

小弟將阿信兄的scripts改為

for i in 1 2 3 4 5 6 7 8 9
do

mv "special_result_e.pl?yyyy=1884&yyyymm=$i&dd=$i&name=" "special_result_e.pl?yyyy=1884&yyyymm=0$i&dd=0$i&name="

但結果只有九個名稱更改了:

special_result_e.pl?yyyy=1884&yyyymm=01&dd=01&name=
special_result_e.pl?yyyy=1884&yyyymm=02&dd=02&name=
special_result_e.pl?yyyy=1884&yyyymm=03&dd=03&name=
special_result_e.pl?yyyy=1884&yyyymm=04&dd=04&name=
special_result_e.pl?yyyy=1884&yyyymm=05&dd=05&name=
special_result_e.pl?yyyy=1884&yyyymm=06&dd=06&name=
special_result_e.pl?yyyy=1884&yyyymm=07&dd=07&name=
special_result_e.pl?yyyy=1884&yyyymm=08&dd=08&name=
special_result_e.pl?yyyy=1884&yyyymm=09&dd=09&name=

其它例如1月11日仍舊是special_result_e.pl?yyyy=1884&yyyymm=1&dd=11&name=
2月1日仍舊是special_result_e.pl?yyyy=1884&yyyymm=2&dd=1&name=

不知錯在什麼地方?

小弟用了Debian已超過一年,仍舊覺得很菜. :ooops:


原來有兩層敘述...那只要在跑一個迴圈就可以了...

當初小弟以為只需要改九個檔案名稱而已... :-P
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義


回到 debian desktop

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客