Grep과 파이프
Coddy Terminal 여정의 기초 섹션에 포함된 레슨 — 82개 중 46번째.
grep 명령어는 파이프와 함께 사용할 때 특히 강력해집니다. 파일 내에서 검색하는 대신, 원하는 것을 정확히 찾기 위해 임의의 명령어의 출력을 필터링할 수 있습니다.
디렉토리 목록에서 특정 파일을 찾고 싶다고 상상해 보세요:
ls -l | grep "report"이 명령은 모든 파일을 상세히 나열한 후 "report"가 포함된 줄만 필터링하여 표시합니다. 모든 것을 수동으로 스캔하지 않고도 타겟팅된 결과를 얻을 수 있습니다.
grep으로 파이프라인을 사용하면 텍스트 출력을 생성하는 모든 명령어와 작동합니다. 특정 프로그램과 관련된 실행 중인 프로세스를 찾으려면:
ps aux | grep "python"또한 grep를 이전에 배운 다른 명령어들과 체이닝할 수 있습니다. 특정 단어가 포함된 줄의 수를 세려면:
cat logfile.txt | grep "error" | wc -l이것은 파일을 읽고, "error"가 포함된 줄을 필터링한 후, 그 수를 셉니다. 이전에 배운 grep 플래그는 파이프에서도 동일하게 작동합니다 — 대소문자 구분 없이 매칭하려면 -i를 사용하거나, 매칭을 제외하려면 -v를 사용하세요.
챌린지
쉬움access.log 파일은 웹 서버 액세스 기록을 포함합니다. 파이프를 사용하여 500 오류 상태 코드를 반환한 요청이 몇 개인지 필터링하고 세어보세요.
다음과 같이 하나의 명령어를 실행하세요:
access.log을 읽기 위해cat을 사용합니다500을 포함하는 줄을 필터링하기 위해grep으로 파이프합니다- 일치하는 줄의 수를 세기 위해
wc -l로 파이프합니다
힌트:
|기호를 사용하여 세 명령어를 연결하세요. grep 명령어는 출력을 필터링하고,wc -l은 남은 줄의 수를 셉니다.
치트 시트
grep 명령어는 파이프(|)를 사용하여 다른 명령어의 출력을 필터링할 수 있습니다.
디렉토리 목록 필터링:
ls -l | grep "report"실행 중인 프로세스 필터링:
ps aux | grep "python"여러 명령어를 연결하여 필터링하고 세기:
cat logfile.txt | grep "error" | wc -l파이프에서 grep의 모든 플래그가 작동하며, 대소문자 무시 매칭을 위한 -i와 매칭 제외를 위한 -v 등이 있습니다.
직접 해보기
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.