나는 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자입니다.