Use |
, que é o operador "ou" para regex no comando grep. Além disso, não há necessidade de cat
. grep
pode ler diretamente do arquivo.
grep '^Name:\|^Email:' filename
Eu tenho uma lista de funcionários no seguinte formato
Name:
Phone No:
Email:
Name:
Address:
Phone No:
Email:
Name:
Country:
Address:
Phone No:
Email:
Name:
Address:
Name :
Email:
Address:
Tudo o que eu quero é que para obter apenas o nome e endereço de e-mail. Como conseguir o mesmo?
Eu tentei algo como cat filename | grep -e ^Name: -e ^Email:
, mas não foi 100% bem-sucedido.
Se por "não 100% bem-sucedido" você quiser apenas os valores dos campos, sem os nomes dos campos, você precisará usar awk
em vez de grep.
por exemplo,
awk -F: '$1 ~ /^(Name|Email)$/ {print $2}' filename
Ou, se você ainda quiser cada registro separado por uma linha em branco:
awk -F: '$1 ~ /^(Name|Email)$/ {print $2}; /^[[:space:]]*$/ {print "\n"}' filename
Tags grep text-processing awk sed