一括でディレクトリ,ファイルの名前変換をする方法
一括ファイル名の改造 (第一引数は拡張子,第二引数は先頭に追加したい文字列)
2重のprint文で引数を足しています.
~/.bashrc
function rename(){
aaa=$1
bbb=$2
echo "ls -v $aaa | awk '{printf \"mv %s $bbb%s\\n\", \$0, \$0 }' | sh " | sh
}
使い方
bash
user$ls -l
a.png
b.png
c.png
user$rename( "*png" "img_" )
user$ls -l
img_a.png
img_b.png
img_c.png
連番をつける場合 (引数はなくてよい.)
~/.bashrc
function numrename(){
aaa=$1
echo " ls -d1 * | awk '{print \$1, \$1}' | awk '{gsub(\"folder\", \"dir\", \$2); printf \"mv %s %02d_%s\n\" ,\$1, NR, \$2}' | sh " | sh
}