728x90

리눅스에서 파일 내용을 검색하려면 어떻게 해야 할까?

파일 전부를 내려받아서 Eclipse 나 Total Commander 를 이용하여 검색한다는 것도 매우 불편한 짓이다.

 

리눅스 자체 명령어를 이용하여 파일 내용을 검색할 수가 있다.

먼저, 검색하고자 하는 디렉토리로 이동한다. 하위폴더를 포함하여 전체를 다 찾을 수 있다.

grep : 파일 내에서 또는 입력값에서부터 특정 패턴을 검색한다.

- v : 일치되는 내용이 없는 라인을 표시한다.

- c : 일치되는 내용이 있는 행의 개수를 표시한다.

- l : 일치되는 내용이 있는 파일의 이름만을 표시한다.

- h : 일치되는 내용을 찾은 파일의 이름을 표시하지 않는다.

- n : 일치되는 내용이 있는 행은 행번호와 함께 표시된다.

 

# grep -r "찾을 문자열" ./*

 

 

검색할 디렉토리에서 찾을 내용이 포함된 모든 파일명과 해당 검색어가 어떤 라인에 있는지 찾을 때

# grep -rn "찾을문자열"

# grep -rn letterMasking

 

파이프프로그램의 실행결과를 다른 프로그램의 입력으로 연결한다.

이렇게 둘 이상의 명령을 함께 사용하고, 한 명령어의 출력결과를 다른 명령어의 입력으로 전환하는 것을 파이프라 한다.

 

또다른 방법은

find [경로] -name "파일명" | xargs grep "찾을 문자열"

# find ./ -name "*.php" | xargs grep "getKRtoUTF"

로 찾을 수 있다.

 

검색어로 사용된 문자열 색을 달리 표시하고 싶다면

# find ./ -name "*.php" | xargs grep --color=auto "getKRtoUTF"

 

 

 

찾을 문자열이 포함된 파일명만 보고 싶다면

# find ./ -name "*.php" | xargs grep -l "getKRtoUTF"

 

 

내가 가장 보기 좋게 원하는 것은 파일명만 보이도록 찾는 것이다.

 

리다이렉션

리다이렉션을 이용하면 명령의 출력을 변경할 수 있다.기본적으로 명령어의 결과는 모니터에 출력된다. 하지만 리다이렉션을 이용하여 파일에 기록할 수 있다.명령어 > 파일 : 파일이 없다면 생성하고, 있다면 기존의 내용을 지운다.명령어 >> 파일 : 파일이 없다면 생성하고, 있다면 기존의 내용에 추가한다.명령어 < 파일 : 파일에서 표준입력 받는다.

 

블로그 이미지

Link2Me

,