Como usar o comando Cut e Grep para encontrar dados separados por “:”

Como usar o comando Cut e Grep para encontrar dados separados por “:”

No meu banco de dados simples, ele contém textos como, por exemplo, soldados.

Name:Rank:Gender:Age:Years of Service

Tom Corporal:Recruit:Male:19:2
Nicole Sergeant:Corporal:Female:30:10
Daniel Recruit:Sergeant:Male:40:19

E meu script é assim:

echo "Enter name: "
read name

echo "Enter rank: "
read rank

echo "Enter gender: "
read gender

echo "Enter age: "
read age

echo "Enter Years of service: "
read years

grep $name database.txt

Se eu inserir "Cabo" no nome, a saída mostrará

Tom Corporal:Recruit:Male:19:2
Nicole Sergeant:Corporal:Female:30:10

porque a string corresponde ao nome e classificação da seção. Como uso o delimitador: para categorizar a pesquisa, portanto, se eu inserir minhas condições na classificação, ele pesquisará apenas a categoria de classificação e não todo o resto.

Desde já, obrigado.

E faça minha pergunta em vez de votar negativamente.

Responder1

grep "^.*:.*:$gender" Information.txt | awk -F: '{print $1}'

informação relacionada