여러 possiblities있다 quivalent는 여러분이 참조하는 대답에서 제안한 것처럼 매우 간단하며 파일을 한 번만 스캐닝하면됩니다.
당신이 참조한 질문에서와 같은 대답 중 하나를 사용하지만, 뒤에 -path '*/.svn' -prune -o
을 추가하면 SVN 디렉토리를 제거 할 수 있습니다. 옵션을 find
과 함께 사용하는 방법에 대한 설명은 this question을 참조하십시오.하지만 패턴이 잘못되었음을 유의하시기 바랍니다. 따라서, 다음을 사용, 모든 파일을 인쇄하려면 :
find . -path '*/.svn' -prune -o -type f -print
을 다음을 수행 할 수 있습니다 당신이 언급 한 문제의 제안대로 xargs
전화 또는 무엇이든으로, 개별 교체 할 수있는 파이프. 당신이 시스템에있는 경우
: 재귀 GREP을 사용하여
find . -path '*/.svn' -prune -o -type f -exec sed -i 's/foo/bar/g' {} +
: 나는 John Zwinck's answer에서 버전을 선호하지만 내가 여기에 재현하지 않습니다 다른 옵션에 대한이 많은 논의가있다 GNU grep을 사용하면 파일 목록을 찾을 수 있습니다. 이것은 아마 찾아보다 효율적이다, 그러나 당신은 일치하는 파일에 대한 sed
를 호출 할 수 않으며, 개인적으로 기억에 훨씬 더 쉽게 구문을 찾을 수 있습니다 (또는 맨 페이지에서 파악) :
sed -i 's/foo/bar/g' `grep -l -R --exclude-dir='*/.svn' 'foo' .`
-l
옵션을 사용하면 grep은 일치하는 줄이 아닌 파일 이름 목록 만 출력합니다.
GUI를 편집기 사용 : Windows를 사용하는 경우
다른 방법으로는, 수행을 내가 할 - (무료 버전에서 사용 가능) NoteTab 편집기의 사본을 얻을, 그 검색 -를 사용 disk-replace 명령을 사용하면 숨겨진 .svn 디렉터리를 자동으로 무시하고 작동합니다.
편집 :.svn
대신 */.svn
으로 수정 된 검색 패턴. 자세한 내용과 다른 가능성을 추가했습니다. 그러나 이것은 여러분의 플랫폼과 svn 버전에 따라 달라집니다 : 이없는 경우가 있습니다. CentOS 7과 같은 경우가 있습니다.
나는 이것을 할 것입니다 : find. -path '.svn'-prune -o -type f -print 하지만 작동하지 않는 것 같습니다. –
그건 내가하고 싶은 말입니다. 당신 말이 맞아요, 효과가 없습니다. 나는 왜 그런지 알아 냈다고 생각하고 수정하도록 편집 할 것입니다. –
CentOS 7에서 재귀 grep을 수행 할 때 여전히 .svn 디렉토리가 있습니다. 대신에 --exclude-dir = '. svn ''을 쓰면 사라집니다. – Kev