拡張子なしでファイル名のリストを含む配列があります。たとえば、次のようになります。
filearray=("fileA" "fileB" "fileC")
これらのファイルは複数のディレクトリに分散されています。ディレクトリを繰り返しながら、各ディレクトリの配列内のファイルに対して操作を実行しようとしています。配列でfindまたはgrepを使用する方法は?
このようなことができますか? :
Dirarray= ("dirA" "dirB")
for Dir in "${Dirarray[@]}"; do
cd "$Dir";
for file in "${filearray[@]}"; do
if find . -regextype posix-extended -regex "$file"; then;
do X;
fi;
done
done
ありがとうございます!
答え1
違うようにします。
Dirarray= ("dirA" "dirB")
for Dir in "${Dirarray[@]}"; do
cd "$Dir"
for file in "${filearray[@]}"; do
# Here a change. If "$file" exists...
if [[ -e "$file"]]; then
: # do something
fi
done
done
man test
その他のファイルテストオプションについては、リソースを参照してください。
その理由は、この方法がはるかに簡単なためです。配列に正規表現が含まれていない場合。