문자열의 16진수 표현만 인쇄하는 grep 명령을 사용하는 정규식을 원합니다.
이것은 내 명령입니다:
grep "0x[A-Fa-f0-9]{1,6}" test.txt
테스트.txt:
0x2a
0xF
0x1111
0x0ZZZ
0x4dz5
예상 출력:
0x2a
0xF
0x1111
출력: 비어 있음
어떻게 해야 하나요? 감사해요
답변1
이 {n,m}
구문은 확장 정규식 세트의 일부입니다. 즉, -E
플래그를 사용하여 grep에서 이를 활성화해야 함을 의미합니다. 전체 줄이 16진수 표현과 일치하도록 하려면 플래그를 추가 -x
하거나 ^
및 $
앵커를 사용하세요.
grep -Ex '0x[A-Fa-f0-9]{1,6}'
또는
grep -E '^0x[A-Fa-f0-9]{1,6}$'
또한 문자가 실수로 확장되는 것을 방지하기 위해 주변 따옴표를 큰 따옴표에서 작은 따옴표로 변경했습니다 $
.
Stack Exchange에서 더 많은 정규식 읽기: