logo
Published on

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

Authors

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