사용자 ID에 대한 사용자를 찾아야 합니다. 인증 시스템의 반환 결과는 다음과 같습니다. 이제 bash 스크립트를 사용하여 정확한 숫자의 행을 추출해야 합니다. 5도 아니고 25도 아니고..
------------
ID LOGIN
------------
28 user1
25 user2
5 user3
사용하면 grep 5
2개의 행이 생기지만 "5"가 있는 행이 필요합니다.
어떤 아이디어가 있나요?
답변1
이를 수행하는 방법에는 여러 가지가 있습니다.
IMHO 가장 좋은 방법은 을 사용하는 것인데 awk
, 이는 필드를 처리할 때 유용합니다.
grep
다음을 기반으로 한 솔루션을 원하는 경우 :
grep -w '^5'
정확한 단어와 일치하도록 -w
지시 하므로 "52"와 일치하지 않습니다. grep
"^"는 grep에게 줄 시작 부분에서 5를 검색하도록 지시합니다. 예를 들어 선행 공백이 있으면 검색이 실패합니다.
해결책은 awk
다음과 같습니다:
awk '$1 == 5'
사용자 이름만 원하는 경우 두 번째 열은 다음과 같습니다.
awk '$1 == 5 {print $2}'
숫자 값이 아닌 문자열을 검색하는 경우 문자열을 큰따옴표로 묶습니다.
awk '$1 == "abc" {print $2}'
답변2
정규식(줄의 첫 번째 문자)을 사용하고 공백을 포함할 수 있습니다.
grep -E "^5 "
답변3
다음을 시도해 보십시오:
query-auth-system | grep "^5\\>"
^
: "줄의 시작 부분에서 일치함을 의미합니다.\\>
: 단어 경계와 일치합니다. 따라서 일치5
하지만 일치하지 않습니다50
.