여러 파일을 가진 하나의 디렉터리가 있다.
특정 단어를 포함한 파일을 찾으려면 어떻게 해야 할까?
간단한 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로 단어의 개수를 구하여 한 개 이상인지 확인했다.
'[개발] Infrastructure > Linux' 카테고리의 다른 글
[Linux] 로그 파일의 내용을 truncate 명령어로 삭제하기. (0) | 2021.08.03 |
---|---|
Apache httpd를 사용하여 Multiple VirtualHost 다루기 (0) | 2021.08.02 |
로컬에서 리눅스에 파일을 업/다운로드 할 수 있는 scp 명령어에 대해 알아보자 (0) | 2021.07.09 |
Ubuntu 메모리 사용량 줄이기 - 캐시 메모리 클리어 (0) | 2021.05.30 |
Ubuntu Server Settings (0) | 2020.07.01 |