"h"로 시작하고 "enu"를 포함하는 파일 이름을 찾기 위해 파일 디렉토리를 검색해 보시겠습니까?
이것이 제가 지금까지 가지고 있는 것입니다. 하나의 명령줄에서 두 개의 grep 문을 처리하는 방법을 모르겠습니다.
find fs282/path/web/en_US.dic -exec grep "^h" {} \;
답변1
파일 이름을 보려면 -name
를 사용하십시오 find
. 일반 파일 이름 패턴이어야 하며 따라서 h*enu*
요구 사항과 일치해야 합니다.
find /some/path -name "h*enu*"
grep
대신, 파일의 내용을 한 줄씩 살펴보므로 패턴과 일치하는 줄을 찾을 수 있습니다.
find /some/path -type f -exec grep '^h.*enu' /dev/null {} +
(출력은 파일 이름이 아닌 줄이 됩니다.)
grep
glob 와일드카드가 아닌 정규 표현식이 필요합니다 -name
. 또한 grep
일치하는 항목을 찾아보세요 .이내에정확히 일치하는 대신 줄을 사용 -name
하여 ^
패턴을 줄의 시작 부분에 고정합니다. /dev/null
일치하는 파일이 하나만 있더라도 일치하는 모든 줄의 파일 이름이 항상 인쇄되도록 하기 위한 것 입니다 . GNU 구현에서는 grep
이 옵션을 사용할 수 있습니다 -H
.