많은 파일을 "검색하고 바꾸는" 방법은 무엇입니까?

많은 파일을 "검색하고 바꾸는" 방법은 무엇입니까?

나는 이 grep명령을 사용하여 여러 파일에서 문자열을 검색합니다. "검색 및 바꾸기"와 비슷한 것이 있습니까?

답변1

당신은 찾고 있습니다sed명령. 예를 들어, 현재 디렉터리의 모든 텍스트 파일에서 "dog"를 "cat"으로 바꾸려면 다음을 수행합니다.

sed -i 's/dog/cat/' *.txt

답변2

sed가 떠오릅니다. 예:

sed s/cat/dog/ <input >output

이것은 한 줄에서 cat을 검색하고 파일 입력의 해당 위치에 dog를 배치하고 파일 출력에 씁니다.

답변3

sed올바른 도구입니다. 그러나 대안으로 다음 ex에서 명령을 사용할 수도 있습니다 vim.

vim -c 'args <files> | argdo %s/cat/dog/g | x'

<files>대체하려는 파일 또는 패턴 목록은 어디에 있습니까?

답변4

Ex 모드에서 Vim을 사용할 수 있습니다:

for b in *.txt
do
  ex -sc '%s/OLD/NEW/g|x' "$b"
done
  1. %모든 라인을 선택

  2. s대리자

  3. g각 줄의 모든 인스턴스 교체

  4. x저장하고 닫습니다

관련 정보