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

相關內容