問題はapt-cache
外部コマンドに関するものですsearch regex
。
たとえば、アスタリスク文字をワイルドカードとして使用できることがわかっていますが、apt-cache policy 'firefox*'
他の可能なアイテムの文書が見つかりません。ファイル名拡張子と同じですか?extglob
スイッチのようなものもありますか?
私が解決しようとしている実際の問題は、すべてのパッケージを除くすべてをapt-cache policy
表示することです。'firefox*'
-l10n-
ベストアンサー1
パッケージ名は、ドキュメントの説明に従って処理されます。~のためapt-get install
(はい、はっきりしません):
与えられた式に一致するパッケージがなく、式に '.'、 '?'または、「*」のいずれかが含まれている場合は、POSIX正規表現と見なされ、データベース内のすべてのパッケージ名に適用されます。次に、一致をインストール(または削除)します。一致は部分文字列で行われるため、「lo.*」は「how-lo」および「lowest」と一致します。これを避けるには、「^」または「$」文字を使用して正規表現を固定するか、より具体的な正規表現を作成します。
厳密に言えば、このチェックは、利用可能なパッケージ名に対してglobを実行した後に行われます。したがって、最初にパッケージの仕様で正確に一致することを確認し、次にglobの一致(?
および使用*
)を確認し、何も見つからない場合はパッケージの仕様を確認します。.
、、、?
またはを含む場合は*
正規表現として解釈されます。 (apt-cache policy 'firefo?'
一致にワイルドカードのみを使用し、apt-cache policy 'firefox?'
最後に正規表現を使用するを実行してワイルドカードの動作を確認できます。)
apt-cache policy 'firefox*'
一致のためにglobを使用してください。正規表現を使用して強制的に一致させるには、出力でforをチェックして、式がapt-cache policy 'firefox.*'
globまたは正規表現で一致することを確認できます。mozilla-firefox
apt-cache search
引数は次のようになるため、正規表現を処理するために明示的に文書化されています。いつも正規表現として扱われます。
正規表現でサポートされている型を考慮すると、apt
除外-l10n-
できません。この回答もっと学ぶ。