例えば、誤って
ZRAD_MyFriend.mp3 ZRAD_きっと忘れない.mp3
のように複数のファイルがあり、ファイル名を一括して変換したい時、xargs による並列処理を使うことで以下のように書ける。
for i in ZRAD*; do echo $i ${i/ZRAD/ZARD} | xargs -n 2 mv; done
わかりやすくするため xargs の無い以下を実行すると
for i in ZRAD*; do echo $i ${i/ZRAD/ZARD};done
ZRAD_MyFriend.mp3 ZARD_きっと忘れない.mp3 ZRAD_MyFriend.mp3 ZARD_きっと忘れない.mp3
と変換前、変換後のファイル名が合計4つ表示される。これを最初のように xargs のオプション n 2 によって2つずつ mv に渡してやることにより
mv ZRAD_MyFriend.mp3 ZARD_きっと忘れない.mp3
mv ZRAD_MyFriend.mp3 ZARD_きっと忘れない.mp3
を実行することになる。
ただし mv を使うとファイルを削除する恐れがあるので、慣れないスクリプトを作るときは注意。
0 件のコメント:
コメントを投稿