기록이 포함된 파일이 있습니다.
qwe.google.com IN A 1.1.1.1
qwe.google.com IN {uneven-space} A{space}1.1.1.1
qwe.google.com IN CNAME asd.google.com
포함된 모든 줄을 파악해야 하는데 IN A
줄 사이에 고르지 않은 공백이 포함되어 있기 때문에 그렇게 할 수 없습니다.
답변1
당신은 그것을 사용할 수 있습니다
grep -E "IN[[:blank:]]+A" file
[[:blank:]]
다음과 유사하게 공백 및 탭과 일치합니다.[ \t]
답변2
당신은 그것을 사용할 수 있습니다
grep -E "IN +A" file
일치합니다 (를 통해확장 정규식IN
) 및 그 사이에 하나 이상의 공백이 있습니다 A
.
IN
와 사이에 다른 형태의 공백(예: 탭)이 있을 수 있는 경우 A
다음을 사용할 수 있습니다.캐릭터 목록 또는 캐릭터 클래스단순한 공간이 아닌,이 답변예를 들어.
답변3
awk '$2 == "IN" && $3 == "A"'
아마도 원하는 것에 더 가까울 것입니다(해당 출력에서 인터넷 A 레코드를 찾으십시오).
그리고 grep
:
grep -E '[[:blank:]]IN[[:blank:]]+A[[:blank:]]'
그냥 것보다 낫겠지
grep -E 'IN[[:blank:]]+A'
다음과 같은 줄과 일치할 수 있습니다.
example.com IN TXT "v=spf1에는 다음이 포함됩니다.안에둘"
예를 들어.
그럼에도 불구하고 두 grep
명령은 모두 일치합니다.
example.com IN TXT "헛소리안에이런"