В моей простой базе данных содержится текст, например, о солдатах.
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}'