包含非註解文字的 grep 文件

包含非註解文字的 grep 文件

我需要找到所有包含 MYSTRING 且之前沒有“#”的文件。

例如,這個應該回傳 FALSE,因為同一行中 MYSTRING 之前出現了「#」:

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匹配從開始到不是 的任意數量的字符#,直到MYSTRINGie 匹配包含 的行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

相關內容