더북(TheBook)

일반적으로 grep은 여러 개의 파일에서 특정 텍스트를 찾는 경우에 주로 쓰인다. 다음 명령은 확장자가 txt인 파일에서 문자열 Perl을 포함하는 줄을 찾아 출력하는 명령이다.

$ grep Perl *.txt
animals.txt:alpaca    Intermediate Perl   2012    Schwartz, Randal
essay.txt:really love the Perl programming language, which is
essay.txt:languages such as Perl, Python, PHP, and Ruby

이번에는 문자열 Perl이 포함된 줄 세 곳을 찾았는데, 한 곳은 animals.txt 파일이고 나머지 두 곳은 essay.txt 파일이다.

grep은 표준 입력으로 입력을 받고 표준 출력으로 결과를 출력하므로, 파이프라인에 사용하기 매우 적합하다. 파일이 많이 있는 디렉터리 /usr/lib에 포함된 하위 디렉터리가 몇 개나 되는지 알아내야 한다고 생각해보자. 이 같은 정보를 한 번에 알려주는 리눅스 명령은 없다. 따라서 파이프라인을 만들어야 한다. ls -l 명령에서부터 시작해보자.

$ ls -l /usr/lib
drwxrwxr-x  12 root root    4096 Mar  1 2020 4kstogram
drwxr-xr-x   3 root root    4096 Nov 30 2020 GraphicsMagick-1.4
drwxr-xr-x   4 root root    4096 Mar 19 2020 NetworkManager
-rw-r--r--   1 root root   35568 Dec  1 2017 attica_kde.so
-rwxr-xr-x   1 root root     684 May  5 2018 cnf-update-db
…
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.