Как мне найти строку, начинающуюся с буквы в Bash? Ни grep, ни awk не сработают - PullRequest
0 голосов
/ 13 сентября 2018

Я пытался найти строки, начинающиеся с E, которые также имеют заглавную A после пробела с этим

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

Первая часть кода будет работать (печатать все строки, которые имеют A после пробела, хотя я не совсем понимаю, как это происходит, так как без 'E' не работает), но вторая - нет «т. Я знаю, что это довольно легко сделать с помощью sql, но я убежден, что есть возможность сделать это и с чистым bash.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

По вашему вопросу вас также может заинтересовать

grep '^E.*\sA' file.txt

, что соответствует строкам, начинающимся с E (^ E), затем любого символа (.) Ноль или более раз (*) и затем одного пробела (\ s) с буквой A после него.

0 голосов
/ 13 сентября 2018

grep не имеет логического оператора AND, если только не использовать каналы как:

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

В этом конкретном случае вы можете настроить BRE как

grep '^E.* A' file.txt

или вы можете использовать awk для таких операций

awk '/^E/ && / A/' file.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...