이것은 여러 구성 파일에서 특정 변수를 찾을 때 매우 유용해 보입니다.
less * | grep some_var
some_var
따라서 모든 구성 파일을 수동으로 볼 필요 없이 값이 반환됩니다 . 좋아요! 하지만 그 가치를 알고 싶을 뿐만 아니라 바꾸고 싶다면 some_var
어떻게 해야 할까요 ? 어떤 파일에 있나요? var와 해당 파일이 발견된 파일을 표시하는 less
명령(또는 무엇이든)을 얻으려면 어떻게 해야 합니까 ?grep
매뉴얼 페이지를 검색했지만 적합한 옵션을 찾을 수 없습니다...
답변1
왜 less
뭔가를 파이프로 연결합니까? 이것은 로 바뀔 것입니다 cat
.
grep some_var * | less
양식의 출력을 얻게 됩니다.
filename:this line contains some_var somewhere
-n
옵션을 : 에 전달하면 grep
줄 번호도 얻습니다.
filename:42:this line contains some_var somewhere
많은 편집자에는 파일 검색 기능이 내장되어 있으며 검색 결과는 해당 위치에서 해당 파일을 열 수 있는 행을 선택할 수 있는 창에 표시됩니다. Emacs에서 다음을 실행하세요.M-x grep
또는 그 변형 중 하나입니다. Vim에서 다음을 실행하세요.:grep
또는 그 변형 중 하나입니다.
답변2
less
실제로는 원하는 작업을 수행하기 위한 것이 아니라 페이지가 매겨진 형식으로 긴 텍스트 파일을 표시하기 위한 것입니다.
grep
파일 또는 파일 목록을 명령줄 인수로 전달할 수 있으므로 다음을 간단히 수행할 수 있습니다.
grep -H some_var *
-H
이 옵션은 결과 앞에 이름을 붙이므로 다음과 같은 출력이 제공됩니다 .
filename: some_var blah blah
less
스크롤할 수 있도록 여전히 파이프를 사용하고 싶다면 그렇게 할 수 있습니다.
grep -H some_var * | less
많은 수의 파일을 수집하는 또 다른 제안은 ack
Debian 시스템 ack-grep
에 있습니다. 이진 파일을 무시하여 소스 트리를 상당히 빠르게 검색하도록 설계되었으며 유사한 검색을 수행하는 데 더 적은 키 입력이 필요합니다.