如何使用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

如果我在名字中输入“Corporal”,输出将显示

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

因为该字符串与部分名称和排名下匹配。我如何使用分隔符:对搜索进行分类,因此如果我在排名下输入条件,它将仅搜索排名类别,而不是其他所有内容。

提前致谢。

并提出我的问题而不是否决投票。

答案1

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

相关内容