コメントされていないテキストを含むファイルをgrepする

コメントされていないテキストを含むファイルをgrepする

MYSTRING を含み、その前に「#」が付いていないすべてのファイルを検索する必要があります。

たとえば、同じ行の MYSTRING の前に "#" があるため、次の例では FALSE が返されます。

a=1      #  otherstring  MYSTRING

これは TRUE を返すはずです:

 # another line above is commented  but that's not on the same line
     a=1; MYSTRING

同様の質問を確認しましたが、まったく同じ状況は見つかりませんでした。

答え1

できるよ:

grep '^[^#]*MYSTRING' file.txt
  • ^[^#]*MYSTRINGから までの任意の数の文字に一致します#MYSTRINGつまり、 を含む行に一致しますMYSTRINGが、#その行の前にはがありません。

例:

% cat file.txt
 # another line above is commented  but that's not on the same line
     a=1; MYSTRING
a=1      #  otherstring  MYSTRING

% grep '^[^#]*MYSTRING' file.txt
     a=1; MYSTRING

関連情報