파일을 읽고 "=" 기호 뒤의 정수 수를 계산하는 스크립트를 작성하는 방법

파일을 읽고 "=" 기호 뒤의 정수 수를 계산하는 스크립트를 작성하는 방법

아래 로그 추출과 유사하게 여러 값을 가진 파일을 읽는 스크립트를 작성하려고 합니다.

1=232=343=5610=66=?????? 1=332=343=2010=46=???????? 1=392=343=3610=36=????? ?????1=132=343=9610=16=??????

여기서 값 6=????????or? ? ? ? ? ? ? ? (7/8바이트 정수 또는 7/8 문자일 수 있음)

로그를 읽고 확인하고 "6"=이 포함된 필드를 인쇄하고 싶습니다.

그런 다음 값의 길이를 확인하여 8개 정수/바이트보다 큰지 확인하세요.

그런 다음 해당 값이 포함된 줄을 새 파일에 씁니다."

답변1

로 시작하고 그 뒤에 7자리 이하의 십진수 숫자가 오는 줄의 경우 ( , 또는 와 6=일치 하지만 는 일치하지 않음 ):6=6=1236=123X456786=12345678

grep -E '^6=[0-9]{0,7}([^0-9]|$)' < in > out

6=다음 문자로 시작하고 뒤에 7자 이하로 이어지는 줄 의 경우 :

grep -xE '6=.{0,7}' < in > out

6=7바이트 이하 로 시작하고 뒤에 오는 줄의 경우 :

LC_ALL=C grep -xE '6=.{0,7}' < in > out

관련 정보