![이 정규식과 일치하는 모든 파일에서 정규식을 바꾸는 방법](https://linux55.com/image/91572/%EC%9D%B4%20%EC%A0%95%EA%B7%9C%EC%8B%9D%EA%B3%BC%20%EC%9D%BC%EC%B9%98%ED%95%98%EB%8A%94%20%EB%AA%A8%EB%93%A0%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EC%A0%95%EA%B7%9C%EC%8B%9D%EC%9D%84%20%EB%B0%94%EA%BE%B8%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
내가 찾고 있는 것일 수 있는 일부 파일(예를 들어 디렉토리 트리에 ~/home
)이 있다고 가정해 보겠습니다. 예를 들어 문자열을 찾고 있는데 a.2
이를 로 변경하고 싶습니다 b.3
. 를 실행하여 목록을 나열할 수 있다는 것을 알고 있습니다 grep -R 'a\.2' *
. 그러면 파일 이름부터 시작하여 일치하는 항목이 표시됩니다. 그러나 교체하는 방법을 모르겠습니다. 어떻게 해야 하나요?
답변1
파일을 두 번 읽을 이유가 없습니다(grep 먼저, sed 다음).
find . -type f -exec sed -i 's/a\.2/b\.3/g' {} +