1. ホーム
  2. linux

[解決済み】スペースを含むファイルのリストを反復処理する

2022-04-17 20:24:36

質問

ファイルのリストに対して反復処理を行いたい。このリストは find というコマンドを思いつきました。

getlist() {
  for f in $(find . -iname "foo*")
  do
    echo "File found: $f"
    # do something useful
  done
}

ファイル名にスペースがある場合以外は問題ありません。

$ ls
foo_bar_baz.txt
foo bar baz.txt

$ getlist
File found: foo_bar_baz.txt
File found: foo
File found: bar
File found: baz.txt

スペースで分割されないようにするにはどうしたらいいですか?

どのように解決するのですか?

単語ベースの反復を行ベースの反復に置き換えることができます。

find . -iname "foo*" | while read f
do
    # ... loop body
done