티스토리 뷰
grep (Globally find Regular-Expression and Print)
- 파일 내용 중 정규식 패턴(Regular-Expression)에 일치하는 문자열을 찾아 화면에 출력
- 독립적으로도 유용한 기능을 제공하지만, 다른 명령어와 조합해서 사용할때 더 강력하다
#> grep [pattern] [file]
-i : 대소문자를 구별하지 않는다(ignore-case)
-n : 행 번호를 함께 보여준다(--line-number)
-v : 정규식에 일치하지 않는 행만 보여준다(--revert-match)
-r : 하위 디렉토리에 위치한 파일도 검색한다(--recursive)
# 예제파일을 practice 디렉토리에 위치시킨 후 명령어에 대해 알아보자.
#> grep "root" /etc/passwd 라고 입력시,
해당 /etc/passwd 경로에서 검색을 하고자 하는 root 라는 문자열이 포함된 라인을 출력을 해준다.
#
-i 옵션 : 대소문자 구별하지 않고 해당 경로에 해당 문자열이 들어있는 행 출력
-n 옵션 : 좌측에 행 번호를 같이 출력해 줌. 즉, 해당 경로의 root 문자열이 들어있는 행은 첫번째 행과 11번째 행
-v 옵션 : 해당 경로에서 root 문자열이 들어 있지 않은 모든 행 출력
#
-r 옵션 : 해당 경로에서 하위경로를 포함하여 해당 문자열이 들어간 행을 출력.
grep 이 강력한 이유는 '정규식' 이라는것을 이용하여 원하는 정보를 찾는것이 가능하다는 점인데, 그럼 정규식에 대해 알아보도록 하자.
grep 명령어로 무언가를 찾기 전에 alias를 이용해서 색깔을 지정해주면 보기 편하다.
#> alias grep="grep --color=auto"
# alias를 이용해 색깔을 지정한 모습.
위에 업로드 한 예제파일은 윈도우에서 작성 된 파일이기 때문에 안의 내용물을 리눅스에 직접 입력하여,
리눅스 내에서 파일을 생성해 보도록 하자.
#> echo "[작성할 내용]" > [target] 와 같은 형태로 입력해준다.
따라서 예제파일을 메모장에 일차로 불러들인 후 전체 복사하여 [작성할 내용] 부분에 우클릭 ->붙혀넣기 한다.
# grep_test 라는 텍스트 파일이 생성되었고 안에 내용 또한 잘 입력 되었다.
정규식 (Regular-Expression) // 더 많은 정규식이 존재하지만 이정도가 기본.
^ : 행의 시작
$ : 행의 끝
. : 하나의 문자와 대응
* : 선행문자의 0개 혹은 임의개수와 대응
[ ] : [ ]사이의 문자 하나와 대응
[^ ] : [ ]사이의 문자를 제외한 문자와 대응
#
1. #grep "The" grep_test // "The" 가 포함된 라인
2. #grep "^#" grep_test // "#" 으로 시작하는 라인
3. #grep "t$" grep_test // t로 끝나는 라인
#
4. #grep "s.n" grep_test // s와n사이에 임의의 문자 하나를 포함한 라인
5. #grep "i*" grep_test // 선행문자 i가 개수와 무관하게 포함되어 있다면 (0개 포함) 출력
cf) "ai*" 의 경우 a는 반드시 포함되어 있어야 하지만, i는 0개 혹은 그 이상일 경우 출력(0개의 경우에도 출력된다는 것에 주의)
#
6. #grep "[tT]" grep_test // t혹은 T가 포함된 라인
7. #grep "[AB]" grep_test // A혹은 B가 포함된 라인
8. #grep "[AB]r" grep_test // A혹은 B이후에 r이 포함된 라인
#
9. #grep "[a-z]" grep_test // a부터 z를 포함한 라인 즉, 모든 영어 소문자 포함한 라인
10. #grep "[a-zA-Z]" grep_test // 영어를 포함한 라인
#
11. #grep "[^0-9]" grep_test // 숫자를 제외한 나머지와 일치하는 라인
#
"^[^#]" // #으로 시작하지 않는 라인 검색
grep 명령어를 이용하여 찾은 결과를 색깔있는 글자로 해당 부분을 표시해주는 alias 기능은 우리가 로그아웃하면 초기화 되어
해당 설정 값을 다시 사용 할 수 없어진다. 이것을 따로 리눅스 내에서 저장시킬수도 있지만, Xshell 에서 지원하는 기능을 이용하여
설정값을 저장하는법을 알아보도록 하자.
# Xshell 좌측 상단 폴더모양 클릭 -> 등록정보
# 로그인 스크립트 -> 다음 대기 및 ... 체크 -> 추가 -> 대기 및 보내기 위와같이 입력
# 이후에 연결해보면 새로운 세션이 열리고 처음부터 grep에 대한 alias 값이 설정해둔대로 적용된 것을 확인 할 수 있다.
'SYSTEM > LINUX' 카테고리의 다른 글
9) VI (0) | 2018.02.22 |
---|---|
8) Link (0) | 2018.02.21 |
6) Basic Command2 (0) | 2018.02.15 |
5) Basic Command1 (0) | 2018.02.14 |
4) Bash Shell (0) | 2018.02.12 |