中かっこ「{」を見つける方法は?

中かっこ「{」を見つける方法は?

grep私はLinuxシステム(Deb)でフラッグキャッチコンテストでフラグを取得しようとしています。以下は結果を返しません。flag{ }ディレクトリに何百ものテキストインスタンスがあることを知っています。

grep -rnw 'Downloads/' -e  'flag{' | more

なぜ?どのように検索できますかflag{?以下はうまくいきますが。

grep -rnw 'Downloads/' -e  'flag' | more

ベストアンサー1

を使用すると、改行文字(行の先頭または末尾)または単語以外の文字(単語文字は文字、数字、または下線)の直前または後の一致のみを返すようにgrep -w要求します。grep

これは、テキスト内の次の文字が単語文字であるため、テキストが 'と一致しないthis is flag{a}ことを意味します。grep -w 'flag{{

同様にthis is theflag{一致しませんgrep -w 'flag{'

そのオプションを無視-wし、代わりに幅がゼロの明示的な単語境界パターン(たとえば、先頭)を使用して一致は可能ですが、flag{a}一致しない可能性がありますtheflag{。 GNUの場合は、grep次を使用してこれを実行できます。

grep -rn '\<flag{' Downloads

または

grep -rn '\bflag{' Downloads

この\<パターンは、単語の先頭の単語境界と\>終了の境界を一致させ、\b開始と終了の両方で一致する。もともとエディタ\<から継承されました。\>exvi\b

GNUは単語の先頭または末尾でand( andと同じように動作)一致をサポートしていgrepませんが、BSDはサポートしています。 BSDではサポートされていません。[[:<:]][[:>:]]\<\>grepgrep\b

おすすめ記事