나는 이 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
%
모든 라인을 선택s
대리자g
각 줄의 모든 인스턴스 교체x
저장하고 닫습니다