![파일을 읽고 "=" 기호 뒤의 정수 수를 계산하는 스크립트를 작성하는 방법](https://linux55.com/image/107002/%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%9D%BD%EA%B3%A0%20%22%3D%22%20%EA%B8%B0%ED%98%B8%20%EB%92%A4%EC%9D%98%20%EC%A0%95%EC%88%98%20%EC%88%98%EB%A5%BC%20%EA%B3%84%EC%82%B0%ED%95%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%9E%91%EC%84%B1%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
아래 로그 추출과 유사하게 여러 값을 가진 파일을 읽는 스크립트를 작성하려고 합니다.
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=123
6=123X45678
6=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