본문 바로가기
[개발] 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로 단어의 개수를 구하여 한 개 이상인지 확인했다.

반응형