我目前正在使用格式文件名。下面我有一個while循環,它貫穿文件名並用_
替代空格,並在連字符後保留任何東西。現在,問題正在循環通過find
命令的結果來格式化名稱。在腳本運行這個了就把如下:雖然通過文件名循環並刪除空白空間
find: paths must precede expression: rename
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
rename.sh
while read -r file
do
new_file=$(echo "$file" | sed -re 's/^([^-]*)-\s*([^\.]*)/\L\1\E-\2/' -e 's/ /_/g' -e 's/_-/-
/g')
echo "mv '$file' '$new_file'"
done < <(find ./ -type f rename)
文件名前:
'./My File - KeEp.txt'
文件名後:
'./my_file-KeEp.txt'
什麼位的是你做的Elid用'...'因爲這是腳本錯誤的重要位爲find'抱怨它的參數。 – 2014-10-07 02:41:04
如果你使用'find',你可以給它一個* action *來重命名文件。這樣,你可以避免整個「做...做完<(找到...)'結構。 – Beta 2014-10-07 02:43:00
@EtanReisner,那是我的錯。我糾正了它。 – 2014-10-07 02:47:13