파일 내용 대신 파일 이름을“grep”하는 방법은 무엇입니까?
grep은 파일 내에서 검색하여 주어진 정규식과 일치하는 행이 있는지 확인합니다. 그러나이 상황이 있습니다. 파일 이름 자체 (파일 내용이 아닌)와 일치하는 정규 표현식을 작성하고 싶습니다. 정규식과 일치하는 모든 파일을 찾기 위해 시스템의 루트 디렉토리에서 이것을 실행합니다.
예를 들어 "f"로 시작하고 .frm으로 끝나는 모든 VB 양식 파일을 찾으려면 정규식을 사용합니다.
"f[[:alnum:]]*\.frm"
grep이 할 수 있습니까? 그렇지 않은 경우이 작업을 수행 할 수있는 유틸리티가 있습니까? 감사.
이 경우 find
대신 사용해야 합니다 grep
.
당신은 또한 사용할 수있는 find
조합으로 grep
또는 egrep
:
$ find | grep "f[[:alnum:]]\.frm"
Pablo가 말했듯이 find
대신 을 사용해야 grep
하지만에 파이프 find
할 필요는 없습니다 grep
. find
해당 기능이 내장되어 있습니다.
find . -regex 'f[[:alnum:]]\.frm'
find
이름별로 파일을 검색하는 매우 강력한 프로그램으로 파일 유형별 검색, 깊이 제한, 다른 검색어와 부울 연산 결합 및 찾은 파일에 대한 임의의 명령 실행을 지원합니다. 자세한 내용 은 find 맨 페이지 를 참조하십시오.
예
find <path> -name *FileName*
수동에서 :
이름 패턴 찾기
파일 이름의 기본 (리딩 디렉토리가 제거 된 경로) 쉘 패턴 패턴과 일치합니다. 선행 디렉토리가 제거되므로 -name과 일치하는 것으로 간주되는 파일 이름에는 슬래시가 포함되지 않으므로 "-name a / b"는 절대로 일치하지 않습니다 (대신 -path를 사용해야합니다). 메타 문자 ( "*", "?"및 "[]")는 "."와 일치합니다. 기본 이름의 시작 부분에서 (find-utils-4.2.2의 변경 사항입니다. 아래 표준 준수 섹션 참조). 디렉토리와 그 아래의 파일을 무시하려면 -prune을 사용하십시오. -path 설명의 예를 참조하십시오. Bash를 포함한 일부 쉘이 쉘 패턴에서 특별한 의미를 갖는 중괄호를 가중한다는 사실에도 불구하고 중괄호는 특별한 것으로 인식되지 않습니다. 파일 이름 일치는 fnmatch (3) 라이브러리 함수를 사용하여 수행됩니다. 님'
grep을 사용하여 파일의 전체 경로를 찾을 수 있습니다. 트리의 출력을 파이프하십시오.
tree -f | grep filename
다음은 .bash_profile 또는 .bashrc에 넣을 수있는 함수입니다.
findfile(){ tree -f | grep $1; } # $1 = filename, -f is full path
find -iname "file_name"
Syntax :-
find -type type_descriptor file_name_here
type_descriptor 유형 :-
f : 일반 파일
d : 디렉토리
l : 심볼릭 링크
c : 문자 장치
b : 블록 장치
당신은 또한 할 수 있습니다 :
tree | grep filename
그러면 트리 명령의 출력이 검색을 위해 grep됩니다. 파일이 존재하는지 여부 만 알려줍니다.
아니, grep은 이것을 위해 잘 작동합니다 :
grep -rl "filename" [starting point]
grep -rL "not in filename"
여러 파일에도 적용됩니다.
tree /path/to/directory/ | grep -i "file1 \| file2 \| file3"
'Programing' 카테고리의 다른 글
커맨드 라인에서 클래스 경로에 항아리 포함 (javac 또는 apt) (0) | 2020.07.01 |
---|---|
Node.js에서 외부 프로그램을 실행하는 방법은 무엇입니까? (0) | 2020.07.01 |
언제 JavaScript에서 '거짓을 반환'해야합니까? (0) | 2020.07.01 |
C ++에서 포인터를 참조로 캐스트 / 변환하는 방법 (0) | 2020.07.01 |
IE9에서 Adobe 글꼴이 CSS3 @ font-face와 작동하도록 설정 (0) | 2020.07.01 |