2020. 8. 5. 12:30ㆍ카테고리 없음
리눅스에서 파일 내용을 검색하려면 어떻게 해야 할까?
파일 전부를 내려받아서 Eclipse 나 Total Commander 를 이용하여 검색한다는 것도 매우 불편한 짓이다.
리눅스 자체 명령어를 이용하여 파일 내용을 검색할 수가 있다.
먼저, 검색하고자 하는 디렉토리로 이동한다. 하위폴더를 포함하여 전체를 다 찾을 수 있다.
grep : 파일 내에서 또는 입력값에서부터 특정 패턴을 검색한다.
- v : 일치되는 내용이 없는 라인을 표시한다.
- c : 일치되는 내용이 있는 행의 개수를 표시한다.
- l : 일치되는 내용이 있는 파일의 이름만을 표시한다.
- h : 일치되는 내용을 찾은 파일의 이름을 표시하지 않는다.
- n : 일치되는 내용이 있는 행은 행번호와 함께 표시된다.
# grep -r "찾을 문자열" ./*
파이프
프로그램의 실행결과를 다른 프로그램의 입력으로 연결한다.
이렇게 둘 이상의 명령을 함께 사용하고, 한 명령어의 출력결과를 다른 명령어의 입력으로 전환하는 것을 파이프라 한다.
또다른 방법은
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"
내가 가장 보기 좋게 원하는 것은 파일명만 보이도록 찾는 것이다.
리다이렉션
리다이렉션을 이용하면 명령의 출력을 변경할 수 있다.
기본적으로 명령어의 결과는 모니터에 출력된다. 하지만 리다이렉션을 이용하여 파일에 기록할 수 있다.
명령어 > 파일 : 파일이 없다면 생성하고, 있다면 기존의 내용을 지운다.
명령어 >> 파일 : 파일이 없다면 생성하고, 있다면 기존의 내용에 추가한다.
명령어 < 파일 : 파일에서 표준입력 받는다