egrep과 정규표현식을 활용한 스크립트를 작성중인데 질문사항이 있습니다.
글쓴이: sexychany / 작성시간: 수, 2017/07/12 - 2:21오후
안녕하세요?
평범한 회사에 다니고 있는 사람입니다.
다름이 아니라
egrep과 정규표현식을 활용한 스크립트를 작성중인데 질문사항이 있어 글을 작성하게 되었습니다.
파일을 입력 받아 파일 안의 핸드폰 번호 줄 수를 체크하는 스크립트 입니다.
변수와 카운트는 아래와 같이 했구요..
phone1="[0-9]\{2,3\}-[0-9]\{3,4\}-[0-9]\{4\}" //이것은 010-0000-0000 과 같이 하이픈이 있는 폰번호입니다. phone2="[0-9]\{2,3\}[0-9]\{7,8\}" //이것은 01012345678 과 같이 하이픈이 없는 폰번호입니다. phonecnt=$(cat "$line" |grep $phone1 |wc -l)
위와 같이 grep 뒤에 단독으로 변수를 넣어주면 정상적으로 카운팅이 됩니다.
그러나 아래와 같이 egrep 으로 phone1 또는 phone2 둘 중 하나만 있을 때 카운팅 하는것은 카운팅이
제대로 되지 않습니다. (값이 0으로 나옵니다)
1)
phonecnt=$(cat "$line" |egrep "$phone1|$phone2" |wc -l)
2)
phonecnt=$(cat "$line" |egrep '($phone1|$phone2)' |wc -l)
위와 같이 다양하게 수정해봤으나 제 능력 밖인지 해결이 되지 않습니다.
염치 불구하고 부디 도움을 부탁드리겠습니다.
Forums:
egrep 과 grep 은 정규식에서 escape
egrep 과 grep 은 정규식에서 escape 시켜야 할 특수 문자가 다릅니다. grep과 grep -E 의 차이를 찾아 보시면 될겁니다.
https://www.gnu.org/software/grep/manual/grep.html#Basic-vs-Extended
참조하세요.
댓글 달기