如何在 Bash 中找到以字母开头的行? grep 和 awk 都行不通

How do I find a line that starts with a letter in Bash? Neither grep nor awk would work

我一直试图找到以 E 开头的行,这些行在 space 之后也有一个大写字母 A 与此

grep 'E* A' file.txt | grep '^E'

代码的第一部分可以工作(打印所有在 space 之后有 A 的行,虽然我真的不明白如何,因为没有 [=16= 它就无法工作]), 但第二个不是。我知道用 sql 做这件事相当容易,但我相信用纯 bash 也可以做到这一点。

grep 没有逻辑 AND 运算符,除非使用管道作为:

grep ' A' file.txt | grep '^E'

在这种特殊情况下,您可以将 BRE 设置为

grep '^E.* A' file.txt

或者您可能希望使用 awk 进行此类操作

awk '/^E/ && / A/' file.txt

根据您的问题,您可能还对

感兴趣
grep '^E.*\sA' file.txt

匹配以 E (^E) 开头的行,然后是任何字符 (.) 零次或多次 (*),然后是一个 space (\s),后面有一个 A。