본문 바로가기
[개발] Infrastructure/Linux

[Linux] 디렉터리에 특정 단어를 포함하는 파일 찾기

by Devsong26 2021. 8. 17.

여러 파일을 가진 하나의 디렉터리가 있다.

특정 단어를 포함한 파일을 찾으려면 어떻게 해야 할까? 

 

간단한 bash 스크립트를 이용하여 찾을 수 있다.

 


 

bash 스크립트의 실행 시, directory 경로와 찾을 단어를 파라미터로 입력한다.

 

./check.sh DIRECTORY_PATH SEARCH_WORD

 

아래는 check.sh 스크립트다.

 

# !/bin/bash
# The file name is check.sh, created by syubrofo.

cd "$1"
word="$2"

for f in *
do
        if [[ $(cat $f | grep -c "$word") -gt 0 ]]
        then
                echo "$f contains the word $word."
        fi
done

 

해당 스크립트의 문법은 for-loop, if뿐이다.

 

$1, $2로 bash 스크립트의 실행 시 입력했던 파라미터를 받는다.

$1 -> DIRECTORY_PATH

$2 -> SEARCH_WORD

 

* 는 모든 파일을 의미하며 f는 파일이다.

 

grep을 이용하여 단어를 확인하는 방법도 있지만, 생각대로 되지 않았다.

그래서 cat으로 내용을 다 읽은 후 grep -c로 단어의 개수를 구하여 한 개 이상인지 확인했다.