728x90
반응형
질문 : awk 또는 sed로 문자열을 재귀 적으로 찾기 / 바꾸는 방법은 무엇입니까?
다음 항목을 모두 찾아서 바꾸려면 어떻게해야합니까?
subdomainA.example.com
와
subdomainB.example.com
/home/www/
디렉토리 트리 아래의 모든 텍스트 파일에서 반복적으로?
답변
find /home/www \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/subdomainA\.example\.com/subdomainB.example.com/g'
-print0
은 새 행이 아닌 널 문자로 구분 된 각 결과를 인쇄하도록 find
디렉토리에 이름에 줄 바꿈이있는 파일이있는 경우에도 xargs
가 올바른 파일 이름에서 작동하도록합니다.
\( -type d -name .git -prune \)
.git
이라는 모든 디렉토리를 완전히 건너 뛰는 표현식입니다. SVN을 사용하거나 보존하려는 다른 폴더가있는 경우 쉽게 확장 할 수 있습니다. 더 많은 이름과 일치하면됩니다. -not -path .git
와 거의 동일하지만 디렉토리의 모든 파일을 확인하는 대신 완전히 건너 뛰기 때문에 더 효율적입니다. -prune
실제로 작동하는 방식 때문에 -o
자세한 내용은 man find
참조하십시오.
출처 : https://stackoverflow.com/questions/1583219/how-to-do-a-recursive-find-replace-of-a-string-with-awk-or-sed
728x90
반응형
'개발관련 > other' 카테고리의 다른 글
O (log n)가 의미하는 것 (0) | 2021.07.21 |
---|---|
Razor에서 삼항 연산자를 사용하는 방법 (특히 HTML 속성에서) (0) | 2021.07.20 |
ASP.NET MVC의 enum 형에서 드롭 다운 목록을 만드는 방법 (0) | 2021.07.19 |
Windows 서버에서 포트가 열려 있는지 확인하는 법 (0) | 2021.07.14 |
Access-Control-Allow-Origin 헤더를 사용하는 방법 (0) | 2021.07.08 |