proc 코드 중에서 insert 하는 부분을 찾는 방법이 궁금합니다.
글쓴이: sangbum0 / 작성시간: 일, 2020/03/22 - 5:31오후
안녕하세요.
case 1. insert into tbaa00
case 2. insert
into
tbaa00
proc 사용하고 있는데, case1 처럼 된 소스도 있고, case2 처럼 된 소스가 있는데
case 1은 grep -i 'into[[:space:]]*tbaa00 으로 걸러집니다.
그런데 case2의 경우에는 줄바꿈이 있어서... 잘 걸러지지가 않네요
find -exec {} 한 후에 tr 로 줄바꿈을 탭으로 바꾼후에
find . -name '*.sh' -exec cat {} \; |tr '\r\n' '\t' | grep -i 'into[[:space:]]*tbaa00 로 하면 나오긴 나오는데 어떤 소스코드인지 파일명이 안나오네요. grep -H 로 파일명 표시해도 (표준입력) 으로 나와버리네요 ^^;;
혹시 case2도 다 찾을 수 있는 팁 있으신분 공유 부탁드립니다!
Forums:
소위 "multi-line search"의 문제입니다
소위 "multi-line search"의 문제입니다.
어떻게든 최대한 간단하게 문제를 해결만 하고 싶은 거라면, 사실 multi-line 자체를 우회해 버리는 방법이 제일 편합니다. 한 글자만 추가하면 되죠.
grep -zi 'into[[:space:]]*tbaa00'
문제는, 이러면 해당 패턴이 발견된 파일 전체가 출력되기 때문에 출력 결과가 상당히 지저분하고, 각 파일의 어느 위치에 패턴이 있는지를 파악하기가 번거롭다는 겁니다.
혹시 grep 말고 조금 유사한 다른 툴을 쓸 생각이 있다면...
pcregrep -Mi 'into[[:space:]]*tbaa00'
https://linux.die.net/man/1/pcregrep
감사합니다.
감사합니다.
z 옵션을 새롭게 알았습니다.
이런 방법도 있군요!
두번째 방법쪽으로도 한번 알아보겠습니다.
많은 도움됐습니다 ^^
댓글 달기