운영체제는 ubuntu 20.04 버전입니다.
Linux 에 grep 명령어를 알아보겠습니다.
Linux의 grep 명령은 파일 또는 입력 스트림 내에서 텍스트 패턴을 검색하는 데 사용되는 강력한 도구입니다. "Global Regular Expression Print"의 약자입니다. grep 명령의 기본 구문은 다음과 같습니다.
grep [OPTIONS] PATTERN [FILE...]
OPTIONS: grep 명령의 동작을 수정하는 데 사용할 수 있는 다양한 옵션입니다.
PATTERN: 검색하려는 정규식 패턴입니다.
FILE: 검색하려는 파일을 나타내는 선택적 인수입니다. 파일이 제공되지 않으면 grep은 표준 입력(예: 파이프로 연결된 텍스트)에서 읽습니다.
다음은 grep과 함께 사용되는 몇 가지 일반적인 옵션입니다.
-i : 대소문자 무시(대소문자 구분 검색).
-v : 일치를 반전합니다. 즉, 패턴과 일치하지 않는 행을 표시합니다.
-r 또는 -R: 디렉토리를 재귀적으로 검색합니다(여러 파일에서 검색하는 데 유용함).
-n : 일치하는 줄과 함께 줄 번호를 표시합니다.
-l : 실제 일치하는 라인이 아닌 패턴을 포함하는 파일의 이름만 인쇄합니다.
-c : 줄 자체가 아니라 일치하는 줄의 수를 인쇄합니다.
사용 예:
"file.txt" 파일에서 "example"이라는 단어를 검색합니다.
grep "example" file.txt
"text.txt" 파일에서 "hello"에 대한 대소문자를 구분하지 않는 검색:
grep -i "hello" text.txt
디렉터리 및 해당 하위 디렉터리 내의 모든 파일에서 "search-term"을 재귀적으로 검색합니다.
grep -r "search-term" /path/to/directory
"data.txt"라는 파일에 "pattern"이 포함된 줄 수를 표시합니다.
grep -c "pattern" data.txt
"log.txt" 파일에서 "error"라는 단어가 포함되지 않은 줄을 검색합니다.
grep -v "error" log.txt
위와 같이 grep 명령어를 사용 할 수 있지만 grep은 다른 명령어와 같이 사용할 수 도 있습니다.
ls를 사용한 grep:
ls로 얻은 디렉토리 목록의 이름을 기반으로 파일을 필터링하기 위해 grep을 사용할 수 있습니다.
예: 이름에 "ec2"라는 단어가 포함된 현재 디렉토리의 모든 파일을 나열합니다.
$ ls | grep "ec2"
ec2.tf
ec2_create.tf
ec2_info.tfplan
cat을 사용한 grep:
cat을 사용하여 여러 파일의 내용을 연결하고 표시한 다음 grep에 연결하여 특정 패턴을 검색할 수 있습니다.
예: cpu_check.sh 라는 셸 스크립트에서 "body"라는 단어가 포함된 모든 줄을 표시합니다.
$ cat cpu_check.sh | grep "body"
# Set the body JSON structure
body='{
curl -X POST -H 'Content-type: application/json' --data "$body" "$slack_webhook_url"
curl -X POST -H 'Content-type: application/json' --data "$body" "$teams_webhook_url"
ps를 사용한 grep:
ps를 사용하여 실행 중인 프로세스를 나열한 다음 grep을 사용하여 이름을 기반으로 특정 프로세스를 필터링할 수 있습니다.
예: 이름에 "chrome"이 포함된 실행 중인 모든 프로세스를 나열합니다.
~$ ps aux | grep "chrome"
tmdqls6+ 1037 0.0 0.0 8168 716 pts/0 S+ 13:41 0:00 grep --color=auto chrome
grep 명령은 정규식을 사용하여 패턴을 정의하므로 필요한 경우 더 복잡한 검색 패턴을 사용할 수 있습니다.
더 많은 패턴 일치가 필요한 경우 man grep 을 통해 알 수 있습니다.
