Sugiro que você use awk
em vez de grep
, por exemplo. para encontrar linhas cujo segundo campo separado por espaço comece com a letra S
awk '$2 ~ /^S/' file
Estou pesquisando por meio de um arquivo de pessoas estruturado como abaixo
John Smith 555-555-5555 Harvard Square, Boston
Estou interessado em encontrar todos os ÚLTIMOS nomes que começam com uma certa letra. Eu tentei usar "grep \
Sugiro que você use awk
em vez de grep
, por exemplo. para encontrar linhas cujo segundo campo separado por espaço comece com a letra S
awk '$2 ~ /^S/' file
Tente usar grep
com um padrão Regex:
grep -P "(?<=^[A-Za-z]+\s)A"
Isso deve corresponder a todas as entradas com o sobrenome começando com A.
O Lookbehind (?<=text)
verifica se text
ocorre antes do padrão realmente pesquisado. Eu uso para pular o primeiro nome, que é dado por ^[A-Za-z]+\s
, significando início de linha ( ^
), então pelo menos uma letra, não importa se é capticial ou não, então um espaço ( \s
). Após o lookbehind, o padrão realmente correspondido é, neste caso, a letra maiúscula A.