1. ホーム
  2. bash

bashスクリプトでfindの結果を処理するには?

2023-10-05 16:55:58

質問

配列を使ってファイル名のリストを格納しようとしています。 find コマンドを使用してファイル名のリストを保存するために、配列を使用しようとしています。

何らかの理由で、配列は学校で使われているbashでは動作しません。私のプログラムは私のノートパソコンでは動作しますが。

それで、私はそれを行うための別の方法があるかどうか疑問に思っていました。

array = (`find . -name "*.txt"`)  #this will store all the .txt files into the array

そして、配列の項目にアクセスし、catコマンドを使ってすべてのファイルのコピーを作成することができます。

配列を使用せずに行う他の方法はありますか?

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

このようなものを使うとよいでしょう。

find . -name '*.txt' | while read line; do
    echo "Processing file '$line'"
done

例えば、コピーする場合。

find . -name '*.txt' | while read line; do
    echo "Copying '$line' to /tmp"
    cp -- "$line" /tmp
done