fgrep 명령을 사용하여 파일에서 텍스트 문자열을 찾는 방법
요약: 초보자에게 친숙한 이 가이드에서는 fgrep 명령의 몇 가지 실용적인 예에 대해 설명합니다. 이 가이드를 마치면 사용자는 명령줄 인터페이스를 사용하여 효율적으로 텍스트 검색 작업을 수행할 수 있습니다.
텍스트 검색은 가장 일반적으로 수행되는 작업 중 하나입니다. 그러나 이 간단한 작업은 사용자가 올바른 도구에 익숙하지 않은 경우 빠르게 시간이 소요됩니다. Linux에는 sed, cut 등과 같은 다양한 텍스트 필터링 유틸리티가 있습니다.
그러나 Linux에서는 fgrep이 단순 텍스트 검색에 가장 선호되는 유틸리티입니다. 이 가이드에서는 일상 생활에서 사용할 수 있는 fgrep 명령의 몇 가지 연습 예제에 대해 설명합니다.
Linux의 fgrep 명령은 grep 명령 계열에 속합니다. 그러나 정규식 대신 고정된 문자열 패턴을 검색하는 데 사용됩니다. 따라서 명령의 이름은 fgrep(고정 GREP)입니다.
fgrep 명령의 구문은 다른 grep 계열 명령과 유사합니다.
$ fgrep [OPTIONS] PATTERNS [FILES]
시작하려면 예제를 사용하기 위해 다음 내용으로 일반 텍스트 파일을 생성해 보겠습니다.
$ cat input.txt

여기에서 샘플 콘텐츠가 포함된 텍스트 파일이 준비되었음을 알 수 있습니다. 이제 다음 몇 가지 예에서 fgrep 명령의 몇 가지 일반적인 예를 살펴보겠습니다.
1. fgrep은 grep 및 egrep 명령과 어떻게 다릅니까?
이름에서 알 수 있듯이 fgrep 명령은 고정 문자열 패턴을 검색하는 데 사용됩니다. 패턴을 정규식 대신 고정 문자열로 해석합니다. 따라서 시간 효율적인 방식으로 검색 작업을 수행합니다.
차이점을 이해하기 위해 점 (.)
문자를 grep 명령과 함께 사용해 봅시다.
이 간단한 정규식은 줄의 끝을 제외한 모든 단일 문자와 일치합니다.
$ grep ha. input.txt

위 출력에서 점 (.)
문자가 텍스트 har, hat 및 has와 일치하는 것을 볼 수 있습니다.
이제 fgrep 명령에 동일한 패턴을 사용하고 결과를 관찰해 보겠습니다.
$ fgrep ha. input.txt
위의 출력에서 명령이 주어진 패턴을 찾는 데 실패했음을 알 수 있습니다.
이는 fgrep 명령이 정규식을 인식하지 못하고 존재하지 않는 패턴인 \ha.”
를 검색하려고 하기 때문에 발생합니다.
[ Linux에서 Grep, Egrep 및 Fgrep의 차이점은 무엇입니까? ]
2. 파일에서 패턴을 찾는 방법
input.txt 파일에서 전문 문자열을 검색하는 기본 예제부터 시작하겠습니다.
$ fgrep professionals input.txt

보시다시피 두 곳에서 패턴 매칭이 성공하고 빨간색으로 강조 표시됩니다.
3. 일치하는 패턴의 Grep 출력 색상 설정 방법
이전 예에서 기본적으로 일치하는 패턴이 빨간색으로 강조 표시되는 것을 보았습니다. 그러나 GREP_COLOR
환경 변수에 다른 값을 할당하여 이 동작을 변경할 수 있습니다.
GREP_COLOR
환경 변수에 값 32를 할당하여 일치하는 패턴을 녹색으로 강조 표시해 보겠습니다.
$ export GREP_COLOR=32 $ fgrep professionals input.txt

이제 다음 예제로 이동하기 전에 GREP_COLOR 환경 변수를 설정 해제하여 기본 동작을 활성화합니다.
$ unset GREP_COLOR
4. 파일에서 여러 패턴을 검색하는 방법
경우에 따라 여러 문자열에 대해 패턴 일치를 수행해야 합니다. 이러한 경우 명령줄 인수 대신 텍스트 파일에서 패턴을 제공할 수 있습니다.
별도의 줄에 여러 패턴을 포함하는 텍스트 파일을 만들어 보겠습니다.
$ cat pattern.txt professionals website
이제 다중 패턴 일치를 위해 이 파일을 -f
옵션과 함께 사용하겠습니다.
$ fgrep -f pattern.txt input.txt

위의 출력에서 문자열 전문가와 웹 사이트에 대해 패턴 일치가 성공한 것을 볼 수 있습니다.
5. 파일에서 일치 항목 수를 제한하는 방법
기본적으로 fgrep 명령은 전체 파일이 처리될 때까지 패턴 일치를 계속 수행합니다.
그러나 때로는 일치하는 수를 제한해야 합니다. 이러한 경우 다음 명령과 함께 -m
옵션을 사용할 수 있습니다.
$ fgrep -m 1 professionals input.txt TecMint was started on 15th August 2012 by technical professionals and all the
이 예에서 fgrep 명령은 첫 번째 패턴을 일치시킨 후 파일 처리를 중지합니다.
6. 패턴 검색시 파일명 출력 방법
때로는 특정 패턴이 있는 파일의 이름만 찾으면 됩니다. 이러한 경우 fgrep 명령의 -l
옵션을 사용할 수 있습니다.
$ fgrep -l professionals input.txt input.txt
여기에서 명령이 일치하는 패턴이 있는 행 대신 파일 이름만 인쇄하는 것을 볼 수 있습니다.
7. 패턴 매칭 실패 시 파일명 출력 방법
이전 예제에서는 패턴 매칭이 성공했을 때 파일명을 출력하는 방법을 살펴보았습니다. 이제 반대 방식으로 작업을 수행하는 방법을 살펴보겠습니다.
파일에서 존재하지 않는 패턴을 찾고 결과를 관찰해 봅시다.
$ fgrep -L non-existing-word input.txt input.txt
이번 예제에서는 패턴매칭에 실패했을 때 파일명을 출력하는 명령어의 -L
옵션을 사용했습니다.
8. 오류 메시지를 억제하는 방법
오류 처리는 셸 스크립트를 작성하는 동안 중요한 역할을 합니다. 그러나 일부 중요하지 않은 시나리오에서는 오류 메시지를 무시해도 됩니다.
fgrep에서 존재하지 않거나 읽을 수 없는 파일과 관련된 오류를 억제하는 -s
옵션을 사용할 수 있습니다. 이 동작을 더 잘 이해하기 위해 존재하지 않는 파일에서 패턴을 검색해 보겠습니다.
$ fgrep -s professionals non-existing-file.txt $ echo $? 2
위의 출력에서 명령이 표준 오류 스트림에 오류를 표시하지 않는다는 것을 알 수 있습니다. 그러나 실패는 0이 아닌 반환 값으로 보고됩니다.
이 외에도 파일을 읽을 수 없는 경우에도 동일한 동작을 관찰할 수 있습니다. 따라서 먼저 chmod 명령을 사용하여 파일 권한을 수정합니다.
$ chmod 000 input.txt $ ls -l input.txt
이제 패턴을 검색하고 결과를 관찰하십시오.
$ fgrep -s professionals input.txt $ echo $?

이 기사에서는 fgrep 명령의 몇 가지 유용한 예에 대해 설명했습니다. 초보자는 일상 생활에서 이러한 예제를 사용하여 Linux로 작업하는 동안 생산성을 향상시킬 수 있습니다.
리눅스에서 fgrep 명령의 다른 가장 좋은 예를 알고 있습니까? 아래 의견에 귀하의 의견을 알려주십시오.