Linuxgrep사용법(각종옵션정리)

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

매뉴얼 페이지

0> 도표 option 내용 기타 – recursive (재귀적) : 모든 폴더 검색 1-1번 항목 참조 – include=GLOB 이름 파일 포함 1-2번 항목 참조 – exclude=GLOB 이름 파일 제외 1-3번 항목 참조 -vinvert-match : non-matchinglines 1-4번 항목 참조 – Eextended-regexp : multipatterns 1-5번 항목 참조 – iignore-case : 대문자 구분 1-6번(so) 9번 항목 참조 – f-file(패턴이 있는 파일로 검색) 1-10번 항목 참조 – x-line-regexp (정확히 한 줄이 맞는 부분 검색) 1-11번 항목 참조 – l, – files-with-matches 패턴 검색시 파일명만 표시 옵션 1-12번 항목

1> 옵션 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”../../components/>> 상위 디렉토리로 이동하여 검색도 가능합니다.

1-1-3> 특정 디렉토리 내의 *.c/h 파일에서 BLE_GAP_EVT_AUTH_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-rInitializeUsb

위 검색내용 중 .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-rRAM_START

Binary라는 글자의 불필요한 부분까지 검색이 되네요.

$ $grep-r RAM_START|grep-v Binary

  • voption manual page

1-5 >-E옵션 >> egrep와 같은 1-5-1 > 두 패턴을 한번에 검색하고 싶을 때 pattern1 or pattern2가 들어가는 라인

$ grep-E”pattern1|pattern2″>>pattern1과pattern2 사이에 space를 넣으면 안됩니다.$ grep-r-E” APDU | BUFF”> APDU가 있거나 BUFF가 있는 행을 표시합니다.

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

manual page 첨부합니다.

>> 정규 표현식 확장 표현에 -Eoption이 사용됩니다.

정규 표현식은 아래 링크 참조 http://blog.naver.com/leevisual/2223987764110> 기본 텍스트는 아래와 같습니다. 1> ^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-number): 라인넘버표시 옵션

main.c의 2946 라인

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

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

아래 예는 *.h 파일 중에서 NRF_CLOCK이라는 단어가 들어가는 패턴을 검색합니다.NRF_CLOCK_orNRF_CLOCKxx>> 검색이 되지 않는 1-10>-f 옵션 : 파일에서 패턴을 얻어 검색 시 사용합니다.

test 1.txt 파일을 패턴으로 test 2.txt 파일로 검색하면

왼쪽:test 1.txt 오른쪽:test 2.txt <주의사항> 간헐적으로 문자열이 같은데 검색이 되지 않을 수 있는데, 이 경우 hexabiew에서 확인해 보세요. 간헐적으로 뒤에 붙는 줄바꿈 문자가 다를 수 있습니다.(ex:aorda) 개행에 사용되는 0d0a를 제거하는 방법은 sed 관련 아래 문서를 참조하십시오.https://blog.naver.com/leevisual/222402635338 : 필터링과 텍스트 변환을 목적으로 하는 편집기(streameditor의 약자) Manualpage1 > 보기의 텍스… blog.naver.com

1-11 >-x 옵션 : 정확히 한 줄이 일치하는 라인 검색시 사용 SYNOPSIS : grep-xPATTERN [FILE…]

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

불필요한 내용이 너무 출력되는 경우의 사용 옵션

<기타> A.gitbranchlist가 너무 많아서 cherry라는 이름이 들어간 파일 찾기 $gitbranch | grepcherryor $gitbranch | grep”cherry*”

#grep #include #exclude #inore_case #extended_regexp #invert_match #v_option #grep #사용법 #recursive #문자열검색 #w_option #h_option #n_option #f_option

작성중입니다….계속

error: Content is protected !!