Linux grep은 특정 문자로 시작하고 특정 단어를 포함하는 파일을 찾습니다.

Linux grep은 특정 문자로 시작하고 특정 단어를 포함하는 파일을 찾습니다.

"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 {} +

(출력은 파일 이름이 아닌 줄이 됩니다.)

grepglob 와일드카드가 아닌 정규 표현식이 필요합니다 -name. 또한 grep일치하는 항목을 찾아보세요 .이내에정확히 일치하는 대신 줄을 사용 -name하여 ^패턴을 줄의 시작 부분에 고정합니다. /dev/null일치하는 파일이 하나만 있더라도 일치하는 모든 줄의 파일 이름이 항상 인쇄되도록 하기 위한 것 입니다 . GNU 구현에서는 grep이 옵션을 사용할 수 있습니다 -H.

관련 정보