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}'

관련 정보