"//"で始まらない行(つまりC++スタイルのコメント)に対してgrepに正規表現を書き込もうとしません。私は "grep -v"オプションを認識していますが、私はregexだけでこの問題を解決する方法を学ぼうとしています。 文字で始まらない行のためのgreppingに関するさまざまな答えを探して見つけました。文字列で始まらない行についてはgrepの方法もありますが、私はこれらの答えを私の場合、私は私の誤りが何であるか理解していません。"//"で始まらない行のGrep
> cat bar.txt
hello
//world
> cat bar.txt | grep "(?!\/\/)"
-bash: !\/\/: event not found
この「イベントが見つかりません」についてはわかりません。私が見つけた答えの1つは、ここでやっていて、やはり失敗している括弧で囲まれた疑問符 - 感嘆符 - 括弧を使いました。
> cat bar.txt | grep "^[^\/\/].+"
(no output)
私は角括弧の中にキャレットを使用して、この構文は意味「(キャレット以外の)角括弧で何の不在を検索。私は思う」と説明したもう一つの答えが。+「手段」 1つまたはそれ以上のものがありますが、それが正しいかどうかわかりません。正しいものであれば、 "。*"と区別できます。
一言:簡単に言えば、grepに渡して検索する方法"//"で始まらない行については?
もっと具体的には、 "#include"が "//"で始まらない行を検索しようとしています。
ありがとうございます。
* $は'追加正規表現には価値がないし、括弧も使わない。 –