Как использовать команды Cut и Grep для поиска данных, разделенных символом «:»

Как использовать команды Cut и Grep для поиска данных, разделенных символом «:»

В моей простой базе данных содержится текст, например, о солдатах.

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

А мой сценарий выглядит так:

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

Если я введу «Капрал» в поле «Имя», вывод покажет

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

потому что строка совпадает под названием раздела и рангом. Как мне использовать разделитель : для категоризации поиска, так что если я введу свои условия под рангом, он будет искать только категорию ранга, а не все остальное.

Заранее спасибо.

И поддержите мой вопрос, вместо того, чтобы голосовать против.

решение1

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

Связанный контент