(각종 옵션정리) linux grep 사용법

:grep 명령어는 입력으로 전송된 파일의 내용에서 특정 문자열을 찾고자 할 때 사용하는 명령어입니다.

매뉴얼 페이지

0 > 도표 option 내용 기타 – rr ecursive (재귀적) : 모든 폴더검색 1-1번 항목참조 – include= GLOB GLOB 이름파일제외 1-3번 항목참조 – vinvert-match: non-matching lines1-4번 dect-9번 항목참조 -f -f -file (패턴의 한줄찾기) – match: non-match: non-mith: non-matching lines1번 lines1번 선택사항참조 – mines1번 pile

1 > 옵션 1 > -r 옵션 >> rgrep과 동일합니다.1-1 > 현재 디렉토리 하의 모든 파일/폴더에서 main(void) 찾기(-r) -r:subdirectory 전부 검사(recursive) $grep-rpattern

1-1-2> 특정 디렉토리 내 모든 파일에서 main(void)을 찾는 $grep-r”main(void)”subdir/

$grep-r”main”… /compone nts /> 상위 디렉토리로 이동하여 검색하실 수 있습니다.

1-1-3> 특정 디렉토리 내의 *.c/h 파일로 BLE_GAP_EVT_STATUS 찾기$grep-rBLE_GAP_EVT_AUTH_STATUS-include={*.h,*.c}…/../components/ble/

1-2 >–include 옵션1-2-1 >.h 파일에서 검색하는 $grep-r “GATTC_SVC”–include=”*.h”> 현재 디렉토리 아래의 모든.h 파일에서 검색합니다.

1-3> -exclude옵션1- 3-1> .h파일을 제외하고 검색하는 $grep-r “GATTC_READ” -exclude=”*.h”

1-3-2> *.o 파일과 *.map은 검색하지 않는다$ grep-r Initialize Usb

위의 검색 내용 중 .o나 . map 파일은 검색하지 않음 $grep-r–exclude={*.o,*.map}InitializeUsb{}을 사용한 1개의 검색 시 –exclude={*.o,}

InitializeUsb를 검색하는데 *.o 파일과 *.map 파일은 제외합니다.위의 멀티 패턴 검색시 사용되는 {,} 은 include 옵션에서도 사용 가능합니다.

1-4>-v옵션(–invert-match): 매칭되는 패턴 제외 옵션 1-4-1> RAM_START 단어를 찾는데 Binary라는 글자가 있는 부분을 제외 $grep-r RAM_START

Binary라는 글자의 불필요한 부분까지 검색이 됩니다

$ grep – r RAM _ START | grep – v Binary

  • v option manual page

1-5 > -E옵션 >> egrep 과 동일 1-5-1 > 2가지 패턴을 한번에 검색하고자 할 경우 pattern1 or pattern2 가 들어가는 라인

$grep-E”pattern1| pattern2″> pattern1과 pattern2 사이를 띄워서는 안 됩니다.$ grep – r – E “APDU|BUFF”> APDU가 있는 행을 표시합니다.

1-5-2 > 2가지 패턴 제외 검색

Manual page를 첨부합니다.

정규 표현 확장 표현으로 -Eop tion이 사용됩니다.

정규 표현식은 아래 링크 참조 https://blog.naver.com/leevisual/2223987764110 > 기본 텍스트로 아래와 같습니다. ^str을 사용한다 >> fi로 시작하는 라인을 찾아서… blog.naver.com

1-6 > -i 옵션: 대소문자 구분없이 검색하는 매뉴얼 페이지

1-7>-s 옵션 : 에러메시지 출력제외 옵션 매뉴얼 페이지

1-7-1 > directory를 제외하고 파일만 검색한다(디렉토리 warning이 표시되지 않도록 함) s를 삭제하고 사용하면 아래와 같이 directory 관련 문구가 표시됩니다.

1-8>-n 옵션 & & h 옵션 : 옵션 미사용시

1-8-1>n옵션(–line-nu mber) : 라인번호표시옵션

main.c 의 2946 라인

1-8-2>h 옵션 (–no-filename): 파일명 미표시

1-9>-w 옵션 : 정확한 단어 검색 시 사용

아래 예제는 *.h 파일안에서 NRF_CLOCK 이라는 단어가 들어가는 패턴을 검색합니다.NRF_CLOCK_or NRF_CLOCKxx >> 검색불가 1-10 > -f 옵션 : 파일에서 패턴을 가져와 검색 시 사용합니다.

test1.txt 파일을 패턴으로 test2.txt 파일을 검색하면

왼쪽:test1.txt 오른쪽:test2.txt<주의사항> 간헐적으로 문자열이 같은데 검색이 안되는 경우가 있는데, 이 경우 hexaview로 확인해 보세요. 간헐적으로 뒤에 붙는 줄 바꿈 문자가 다를 수 있습니다.(ex:a or da) 줄바꿈에 사용되는 0d 0a를 제거하는 방법은 sed 관련 하단 문서를 참고하시기 바랍니다.https://blog.naver.com/leevisual/222402635338: 필터링과 텍스트 변환을 목적으로 하는 편집기 (stream editor의 약자) Manual page 1 > 표시된 텍스… blog.naver.com

1-11>-x 옵션 : 정확하게 한 줄이 일치하는 라인 검색시 사용

test 1.txt 상의 test 1.txt 파일 기준 설명입니다.1-12 > -ㅣ옵션 (–files-with-matches) : 정상적으로 일치하는 패턴의 출력이 아닌 파일명의 출력 옵션을 처음 매칭한 후 동일 파일의 검색을 중지합니다.

불필요한 내용이 너무 많이 출력되었을 때 사용 옵션

< 기타 > A. git branch list가 너무 많아서 cherry라는 이름이 들어간 파일을 찾는다 $ git branch | grep “cherry*”>

grep # include # exclude # ignore _ case # extended _ regexp # invert _ match # v _ option # grep # 사용법 # recursive # 문자열검색 # w _ option # h _ option # n _ option # f _ option

작성중입니다….계속

error: Content is protected !!