newfile
という名前のファイルがあります。このファイルの内容は次のとおりです。
abc
xyz
abc
ここで、a
で始まりc
で終わる行を検索します。次のコマンドを入力しましたが、結果は予想とは異なります。
grep -E '^ac$' newfile
このコマンドの問題は、^ac$
を使用すると、コマンドがac
で始まるのではなく、a
で始まると解釈することです。
このコマンドの問題は、^ ac $を使用すると、コマンドが「a」ではなく「ac」で始まると解釈することです。
あんまり。 $
アンカー を使用したため、ac
文字列の直後で終了する行を検索しているため、正確に単一のac
を含む行のみが検索されます。文字が一致します。
これらの文字の間の任意の文字を許可するには、任意の文字のカウントに正規表現を使用します:.*
(または、例のabc
のように1文字のみを許可する場合は、.
を使用しますなし 量指定子 like *
。)
ちなみに、この正規表現のオプション-E
は、これら2つのバリアントで異なる構文を含まないため、単に省略できます。
結果は次のとおりです。
grep '^a.*c$' newfile