Linux 셸에서 내가 디렉토리에 있다고 가정하고 모든 하위 폴더에서 이름에 문자열이 있고 내부에 문자열이 있는 모든 파일을 /dir
재귀적으로 찾고 싶습니다 . 파일 이름의 시작, 중간 또는 끝에 있을 수 있습니다. 어떻게 해야 하나요?name_string
content_string
name_string
나는 grep을 시도했다 :
grep -r content_string /dir/*name_string*
하지만 지금까지 나는 그렇게 운이 좋지 않았습니다.
감사해요!
답변1
빠른 수정을 위해 다른 방법만큼 효과적이지는 않더라도
find /dir -type f -name '*name_string*' -print0 | xargs -0 grep -l content_string
답변2
다음 OR 구문을 사용할 수 있다고 생각합니다.
grep -nriE '.*name_string.*|content_string' /dir
아니면 제가 일반적으로 하는 일을 하십시오. 즉 첫 번째 출력을 grep
다른 출력으로 파이프하는 것입니다 grep
.
grep -nriE '.*name_string.*' /dir | grep -nri 'content_string'