파일의 한 줄 부분에서 7자만 포함하는 파일/또는 여러 파일*에서 항목을 추출해 보십시오.

파일의 한 줄 부분에서 7자만 포함하는 파일/또는 여러 파일*에서 항목을 추출해 보십시오.

나는 7자리 숫자만 포함된 항목을 찾아내려고 하는 파일이 많습니다.

다음은 제가 추출하려는 내용의 예입니다.

    CDR Calling Number: +15555555555
    CDR Called Number: 5557600

이것은 현재 가져와야 하는 명령이지만 이 명령은 내가 원하지 않는 다른 항목도 끌어옵니다.

cat file* |grep -v "CDR Called Number: +1" |grep -B 1 "CDR Called Number"

다음은 내가 성공하지 못한 채 시도한 몇 가지 항목입니다.

grep '^.......' file*
grep -E '^.{7}$' file*
sed -rn '/^.{7}$/p' file*

답변1

당신이 원하는

grep -E '\D\d{7}$'
  • 숫자가 아닌 숫자 뒤에 7자리 숫자와 줄의 끝이 옵니다.

이것은 또한 작동할 수 있습니다

awk 'length($NF) == 7 && $NF !~ /[^0-9]/'
  • 마지막 필드의 길이는 7자이며 숫자가 아닌 숫자는 포함되지 않습니다.

귀하의 예에는 몇 가지 오류가 있습니다.

  • grep '^.......'-- 와이어시작7개로모든 문자
  • grep -E '^.{7}$'-- 이 줄의 길이는 정확히 7자입니다.

관련 정보