변수 명이 변경되거나 URL 주소가 바뀌는 등, 여러 파일에서 참조하는 값의 이름이 변경되는 경우가 있다.
보통 sed를 이용하면 바꿀 수 있지만 하위 디렉토리까지 재귀적으로는 할 수없다.
하지만 grep과 sed를 같이용하면 recursive하게 하위 디렉토리의 파일까지 내용을 바꿀 수 있다.
grep -rl 기존문자열 . | xargs sed -i 's/기존문자열/수정후문자열/g'
이렇게 하면 해당 디렉토리부터 하위 디렉토리까지 모든 파일을 탐색하며 {기존문자열} → {수정후문자열}로 바꾼다.
만약 특정 확장자인 파일의 내용만 치환하고 싶으면 아래와 같이 --include 옵션을 쓰면된다.
grep -rl 기존문자열 --include \*.go | xargs sed -i 's/기존문자열/수정후문자열/g'
위 예시는 .go 파일의 내용만 바꾸는 예시이다.
참고
'공부 > Linux' 카테고리의 다른 글
IDE로 코드 리뷰할때 개인적인 팁 (4) | 2024.04.18 |
---|---|
Linux cpu, memory, storage 정보 확인 (0) | 2022.08.12 |