作者 主題: 想以script做檔名的變更  (閱讀 6478 次)

0 會員 與 1 訪客 正在閱讀本文。

Quota

  • 活潑的大學生
  • ***
  • 文章數: 352
    • 檢視個人資料
    • http://home.kimo.com.tw/jiannrongkimo/
想以script做檔名的變更
« 於: 2005-11-15 13:54 »
請教一下
如果我想要做檔名的變更,想把有空格的檔案名稱 空格部分改為_
比如說
"abcd ef.jpg"改為"abcd_ef.jpg"
那我該如何寫這個script呢?
因為我有三個資料夾內的檔案(裡面分別有40,50,75個檔案)都需要作
檔名更新
所以用script方式會比較好
只是不知該從何下手
麻煩諸位提供些訊息給我做參考
謝謝

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3977
    • 檢視個人資料
想以script做檔名的變更
« 回覆 #1 於: 2005-11-15 14:45 »
代碼: [選擇]

haway@dhcp-2100-4475:~/tmp/tmp$ cat tes.txt
abc def

haway@dhcp-2100-4475:~/tmp/tmp$ cat tes.txt | tr " " "_"
abc_def
我做人那麼 nice, 肯定有什麼誤會.....

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17413
    • 檢視個人資料
    • http://www.study-area.org
想以script做檔名的變更
« 回覆 #2 於: 2005-11-15 15:28 »
try:
代碼: [選擇]
#!/bin/bash

ls * | while read i
do
        mv "$i" $(echo $i | tr ' ' _) 2>/dev/null
done

maa

  • 可愛的小學生
  • *
  • 文章數: 20
    • 檢視個人資料
    • http://coopermaa2nd.blogspot.com/
想以script做檔名的變更
« 回覆 #3 於: 2005-11-15 16:15 »
引述: "netman"
try:
代碼: [選擇]
#!/bin/bash

ls * | while read i
do
        mv "$i" $(echo $i | tr ' ' _) 2>/dev/null
done


really cool. :)
我也來貢獻個 Tcl 版的:

代碼: [選擇]

#!/bin/sh
# This line continues for Tcl, but is a single line for 'sh' \
exec tclsh "$0" ${1+"$@"}

foreach file [glob -type f *] {
    set newfile [string map {" " _} $file]
    catch {file rename $file $newfile}
}

molopoly

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
想以script做檔名的變更
« 回覆 #4 於: 2005-11-15 19:52 »
…看了各位高手的方法,實在是讓我敬佩,
不過,…已經有rename了為什麼還要這樣做呢?
舊版rename:
代碼: [選擇]
rename 's/\ /\_/g' *
新版的rename:
代碼: [選擇]
rename ' '  _ *
對了,新版的rename是憑印象打出來的,沒測過,也許可以吧。

thyme

  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 1281
    • 檢視個人資料
想以script做檔名的變更
« 回覆 #5 於: 2005-11-16 09:58 »
代碼: [選擇]

$ ls
a b.jpg  c d.jpg  sdfsc dsdfs.jpg
$ rename " " "_" *.jpg
$ ls
a_b.jpg  c_d.jpg  sdfsc_dsdfs.jpg

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17413
    • 檢視個人資料
    • http://www.study-area.org
想以script做檔名的變更
« 回覆 #6 於: 2005-11-26 23:20 »
用 rename 需注意多個 space 的問題哦...

xyzman

  • 可愛的小學生
  • *
  • 文章數: 28
    • 檢視個人資料
想以script做檔名的變更
« 回覆 #7 於: 2006-09-07 06:23 »
不知道是否可以進階到
連資料夾也都一併改名
然後可以遞迴執行
我想達到的是這樣的效果
但是試不出來!