ワイルドカード演算子を使用すると、ファイル名のリストをプログラムに渡すことはできません。
本質的に問題は、複数のレベルのサフィックスを持つファイルがあり、基本ファイルをより短いサフィックスと一致させたいことです。
たとえば、filename.suffix_somedata
一致する必要がありますが、filename.suffix_somedata_extrainfo
一致してはいけません。
試してみましたが、ls filename.suffix_[a-zA-Z0-9]*
期待ls filename.suffix_[:alnum:]*
どおりに機能しません。
ベストアンサー1
*
の正規表現演算子に対応するのは(for)zsh -o extendedglob
です。このオプションでkshスタイルのワイルドカードを使用することもできます。したがって、次のいずれかを実行します。#
##
+
kshglob
setopt extendedglob # best in ~/.zshrc
ls -d filename.mainsuff_[[:alnum:]]#
または:
setopt kshglob
ls -d filename.mainsuff_*([[:alnum:]])(-)
(これは(-)
部分的に([[:alnum:]])
グローバル修飾子として処理されるのを防ぐためのものです(またはそうすることができますsetopt nobareglobqual
))。