位置指定コマンドの正規表現について学ぶ

位置指定コマンドの正規表現について学ぶ

locate正規表現でコマンドを使用するには、パターンを引用符で囲み、--regexオプションを渡す必要がありますか?では、次はどういう意味ですか?

ㅏ)locate --regex file*?ここで正規表現やシェルワイルドカードが発生しますか?

b) locate 'file*'? 通過できなくても正規表現検索が対象になりますか--regex

c)locate file* //シェルワイルドカードが発生することを知っています。

d)locate --regex 'file*'//正規表現検索がデータベースファイルで実行されることを知っています。

答え1

シェルプロンプトでコマンドを入力できます。シェルは、ワイルドカード、代替変数、置換$()などを含む、入力した内容を処理します。入力を処理した後、シェルはコマンドを実行します。

文字列にシェル固有の文字(スペースやアスタリスクなど)が含まれていますが、シェルがその文字を処理したくない場合は、引用符を使用する必要があります。現在のディレクトリに一致するファイルがない場合は、アスタリスクを引用しないと外れませんが、とにかく引用することをお勧めします。

--regexこのオプションはシェルの動作に影響を与えないことを理解することが重要です。まず、シェルはユーザーが入力するコマンドを処理します。locateこの処理の結果を取得します。

a)現在のディレクトリに一致するファイルがある場合、file*シェルはそれらをfile*これらのファイルのリストに置き換えます。電話する前にlocate。一致するものがない場合、シェルは触れずに名前などのファイルをfile*探しますfile。つまり、シェルはグロービングを試み、シェルのグロービング結果が正しい構文である場合、正規表現検索が実行されます。fileefileeelocate

b) 引用符は、アスタリスクを保持するようシェルに指示します。locateで始まるファイルを見つけますfile。正規表現検索はありません。

c)シェルはa)のようにワイルドカードを試みます。一致するものがない場合はlocate検索が始まりますfile。正規表現はありません。

d) シェルは式を考慮しない。locate正規表現検索が実行され、名前などのファイルがfile検索されます。fileefileee

関連情報