![재귀적으로 검색할 때 경로 접두사가 선택되도록 grep에 어떻게 지정합니까?](https://linux55.com/image/164609/%EC%9E%AC%EA%B7%80%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EA%B2%80%EC%83%89%ED%95%A0%20%EB%95%8C%20%EA%B2%BD%EB%A1%9C%20%EC%A0%91%EB%91%90%EC%82%AC%EA%B0%80%20%EC%84%A0%ED%83%9D%EB%90%98%EB%8F%84%EB%A1%9D%20grep%EC%97%90%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%A7%80%EC%A0%95%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
예. 내가 찾고 있는 단어가 있어요."고양이". 나는 그 단어가 현재 작업 디렉토리 아래 어디든 위치할 수 있다는 것을 알고 있습니다. 그래서 나는 사용한다grep -r, 이는 다음 형식의 결과를 제공합니다.
./example_root/[dir1|dir2]/[SOME_ARBITRARY_SUBPATH]/cat_file,
어디
고양이 파일
단어가 포함된 파일입니다."고양이". 내가 관심이 있는 것에만 관심이 있다면 어떨까요?
/example_root/dir1/[무엇이든_경로]
내 경로의 접두사? 어떻게 말해야 해?grep?
답변1
나는 노력할 것이다
grep -rl cat directory | xargs dirname
어디
grep -rl cat directory
(-r
) 디렉토리에서 cat 및 (-l
) lisy 파일을 반복적으로 검색합니다.| xargs dirname
각 파일은 "제공"되어dirname
파일 부분이 제거됩니다.
답변2
댓글에 있는 @Kusalananda의 답변이 제가 원하는 것입니다. 이렇게 하세요.
grep -r 'cat' /example_root/dir1/
그러나 단어가 발견된 디렉토리 이름을 검색하려는 경우 다음(@Archemar 제공)이 유용할 것입니다.
grep -rl cat directory | xargs dirname