파일에서 위치 검색을 수행하고 다른 파일에 기록된 일치 패턴이 포함된 줄을 찾는 방법 [닫기]

파일에서 위치 검색을 수행하고 다른 파일에 기록된 일치 패턴이 포함된 줄을 찾는 방법 [닫기]

파일 크기가 크고, 가변 길이(2바이트~8바이트)의 특정 위치 코드와 일치하는 라인만 추출해야 합니다.

나쁜 결과를 초래할 수 있으므로 일반 grep을 사용할 수 없습니다. loc cd mas를 검색할 때 grep mas다음과 같이 입력하면 thomas라는 이름과 일치합니다.

고정된 길이의 파일이기 때문에 어디서 검색해야 하는지 알 수 있습니다. 특정 위치(제 경우에는 620-628)를 검색하여 일치하는 줄을 추출할 수 있는 명령이 있나요?

답변1

sed이에 매우 적합함

sed -n '620,628 { /mas/p }'

sed이제 관심 있는 마지막 줄을 읽은 후 종료할 수도 있습니다(따라서 더 빠르게 실행됩니다).

sed -n -e '620,628 { /mas/p }' -e '629q'

완전한 단어 일치를 위해 표현식을 묶어서 변경할 수 있습니다.\b

예를 들어

sed -n -e '620,628 { /\bmas\b/p }' -e '629q'

이제 일치 this contains mas and stuff하지만아니요성냥 this is a masterful piece of work.

답변2

나는 노력할 것이다

awk '/mas/ && NR >= 620 && NR <= 628' file

어디

  • NR(레코드 수)는 줄 번호입니다.
  • /mas/패턴 검색 중
  • 기본 동작은 라인을 인쇄하는 것입니다

답변3

나는 노력할 것이다

grep -P '^.{620}mas' file

스키마가 변경되는 경우 변수를 사용할 수 있습니다

PAT='mas\b'
grep  -nP "^.{620}$PAT" file

관련 정보