プログラミング

Bashのfor inでフォルダの全てのファイルにコマンドを実行

LinuxコマンドラインのBash言語で、for in文を使ってフォルダの中の全てのファイルに同じコマンドを実行してループする方法についてメモです。

for in構文を使います。

for f in *; do  ffprobe -loglevel error -show_entries format_tags=artist -of default=noprint_wrappers=1:nokey=1 "$f" ; done

or

for f in *; do
  ffprobe -loglevel error -show_entries format_tags=artist -of default=noprint_wrappers=1:nokey=1 "$f"
done

$fがファイル名になるわけですが、"$f"と、ダブルクォーテーションで囲ってやるのが見落としやすいポイント。

参考:

bash command for each file in a folder – Ask Ubuntu

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です