带前导空格的 grep 模式

Mik*_*.C. 3 bash regex grep

我需要一些帮助来为 grep 设置正确的模式。我需要找到所有出现的pattern可能有 前导空格的地方。例如:在以下文件中:

 1. No pattern recognized.
 2. Pattern to be recognized
 3.          Pattern to be recognized here also
 4.  pattern with only one leading space 
Run Code Online (Sandbox Code Playgroud)

我只想 grep 2,3 和 4 行。行号仅供参考。

到目前为止,我已经尝试了以下方法:

grep -i '^ [[:blank:]]pattern',但它只返回第 4 行。

grep -i '[[:blank:]]pattern' 返回 1,3 和 4。

grep -i '^[[:blank:]]pattern' 返回 1,3 和 4。

-- Mike PS 如果这不是合适的论坛,那么请相应地指导我。

Ser*_*nyy 6

您的第 2 行和第 3 行有大写 P 并且需要零个或多个空格,因此请准确指定:

$ grep '[[:blank:]]*Pattern'  input.txt                                  
 Pattern to be recognized
         Pattern to be recognized here also
Run Code Online (Sandbox Code Playgroud)

就个人而言,我建议用其他东西扩展你的模式,比如 '[[:blank:]]Pattern.*recognized'