파일 이름을 표시하려면 "less"를 사용하세요.

파일 이름을 표시하려면 "less"를 사용하세요.

이것은 여러 구성 파일에서 특정 변수를 찾을 때 매우 유용해 보입니다.

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

많은 수의 파일을 수집하는 또 다른 제안은 ackDebian 시스템 ack-grep에 있습니다. 이진 파일을 무시하여 소스 트리를 상당히 빠르게 검색하도록 설계되었으며 유사한 검색을 수행하는 데 더 적은 키 입력이 필요합니다.

관련 정보