zsh - 複雑なファイル名の一致[閉じる]

zsh - 複雑なファイル名の一致[閉じる]

ワイルドカード演算子を使用すると、ファイル名のリストをプログラムに渡すことはできません。

本質的に問題は、複数のレベルのサフィックスを持つファイルがあり、基本ファイルをより短いサフィックスと一致させたいことです。

たとえば、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))。

おすすめ記事