이 정규식과 일치하는 모든 파일에서 정규식을 바꾸는 방법

이 정규식과 일치하는 모든 파일에서 정규식을 바꾸는 방법

내가 찾고 있는 것일 수 있는 일부 파일(예를 들어 디렉토리 트리에 ~/home)이 있다고 가정해 보겠습니다. 예를 들어 문자열을 찾고 있는데 a.2이를 로 변경하고 싶습니다 b.3. 를 실행하여 목록을 나열할 수 있다는 것을 알고 있습니다 grep -R 'a\.2' *. 그러면 파일 이름부터 시작하여 일치하는 항목이 표시됩니다. 그러나 교체하는 방법을 모르겠습니다. 어떻게 해야 하나요?

답변1

파일을 두 번 읽을 이유가 없습니다(grep 먼저, sed 다음).

find . -type f -exec sed -i 's/a\.2/b\.3/g' {} +

관련 정보