これは構文上正しいです。
for f in *bw;do echo $f;done
しかし、そのうちの1つを繰り返すには、どのように拡張機能を追加できますか?
- 以下は機能しません:
for f in *bw|*txt;do echo $f;done
- これも機能しません。
for f in *bw or *txt;do echo $f;done
ベストアンサー1
知りません。あなたは再び繰り返す両方「拡張」し(必要な場合)、どちらか一方または両方が存在することを確認します。たとえば、1つだけを印刷する場合(最初の項目)、各ファイルのデフォルト名(拡張子なし)のリストを保持します。連想配列は参照しやすいので便利です。たとえば、Bashでは次のようになります。
declare -A files
for f in *.bw *.txt; do
bn=${f%.*}
if [ -z "${files[$bn]}" ] ; then
echo "$f"
files["$bn"]=1
fi
done