{{text}}
모든 파일에서 찾고 새 파일에서 빨간색을 찾고 싶습니다 . 시도해 보았지만 나에게는 효과가 없습니다
find . -type f -not -name "*.dll" -not -name "*.zip" -exec cat {} \; |
grep "\{.*" | cut -d "{" -f1 | sort | uniq > keys.txt
답변1
나는 당신이 이것을 찾고 있다고 생각합니다 :
grep -FIrho '{{text}}' . >/tmp/keys.txt
mv -f /tmp/keys.txt .
.dll
또는 제외 항목 과 파일이 정말로 필요한 경우 .zip
다음과 같을 수 있습니다.
find . \( -name '*.zip -o -name '*.dll' \) -prune -o -type f -exec grep -Fho '{{text}}' {} + >/tmp/keys.txt
mv -f /tmp/keys.txt .
여기 keys.txt
에는 0개 이상의 줄이 포함됩니다 {{text}}
. 일치하는 내용 대신 파일 이름을 기록하도록 하시겠습니까? 아니면 전체 라인이 {{text}}
존재할까요?
답변2
grep
셸과 매직을 통해 재귀적으로 호출하는 것 외에도 find
일부 프로그램은 어려운 작업을 수행할 수 있습니다.
예를 들어, silversearcher-ag(https://geoff.greer.fm/ag/) 또는 확인(https://beyondgrep.com/),그렇게 간단합니다:
ack '{{text}}'
또는
ag '{{text}}'
이러한 도구의 장점은 기본적으로 바이너리나 디렉터리(예: 등) 검색을 피하고 .git
루프 .svn
호출보다 훨씬 빠르다는 것입니다.grep
이러한 도구는 주요 GNU/Linux 배포판의 저장소에 존재합니다.