파일의 한 줄에 있는 두 번째 정수가 일치하는지 확인하세요.

파일의 한 줄에 있는 두 번째 정수가 일치하는지 확인하세요.

다음 항목 형식의 파일이 있습니다.

$ cat mw.hosts
host23v0242 USER=wsadmin                                                  MOUNTPOINT=/web
server21v0243 USER=wsadmin                                                  MOUNTPOINT=/web
myser13v0418 USER=wladmin                                                  MOUNTPOINT=/web
whatever22v0419 USER=wladmin                                                  MOUNTPOINT=/web
....
....

왼쪽에서 두 번째 정수가 "3"인 모든 항목을 grep(나열)하고 싶습니다.

따라서 위의 예에서 원하는 출력은 다음과 같습니다.

host23v0242 USER=wsadmin                                                  MOUNTPOINT=/web
myser13v0418 USER=wladmin                                                  MOUNTPOINT=/web

보시다시피 두 번째 정수는 "3"과 일치합니다.

뭔가 제안해주실 수 있나요?

답변1

grep '^[^0-9]*[0-9]3' mw.hosts

또는

grep '^[^[:digit:]]*[[:digit:]]3' mw.hosts

또는 (GNU 호환 Perl 정규식 사용 grep -P):

grep -P '^\D*\d3' mw.hosts

이들 모두는 0개 이상의 숫자가 아닌 문자로 시작하고 그 뒤에 숫자, 가 오는 모든 줄과 일치합니다 3.

답변2

이 목적으로 awk를 사용할 수도 있습니다.

awk '/[0-9]3v/ { print }' mw.hosts
awk '/[0-9]3v/ { print }' mw.hosts
host23v0242 USER=wsadmin                                                  MOUNTPOINT=/web
myser13v0418 USER=wladmin                                                  MOUNTPOINT=/web

관련 정보