find -exec vi 에서

khalisto의 이미지

안녕하세요. 대학 졸업논문 때문에 연구하고 있는 리눅스 유저입니다.

find 와 vi 명령어를 이용하여 특정 키워드를 치환하고 저장하는 명령은 검색을 통해 충분히 배울 수 있었는데

find . -name "test.txt" -exec vi -c "%s/Morning/Evening/" -c "wq" "{}" \;

특정 키워드가 포함된 라인 바로 하단에 새로운 내용을 추가하려고 하는데 응용이 잘 안 되어 도움을 얻고자 질문드립니다. ^^

test.txt 파일 내용은 다음과 같습니다.

Good Morning
Hello?

find . -name "test.txt" -exec vi -c "%s/Morning/Evening/" -c "wq" "{}" \; 를 실행하면 정상적으로 Morning -> Evening 으로 변경 됩니다.

예를 들어 Hello? 하위(3행)에 Goodbye 라는 키워드를 위와 같은 find 명령으로 실행하고자 한다면 어떠한 방법으로 수행해야하는지 조언 부탁드립니다.

감사합니다.

익명 사용자의 이미지

특정한 Hello? 라는 문자열 하위 3행에 Goodbye를 추가하시길 원하시는건가요?

sed -e "s/Morning/Evening/g" -e "s/Hello?/\n\n\nGoodbye/g" | `find . -name "test.txt"`

추가하고 싶은 조건이 있으면, sed -e "s/찾는문자열/바꿀문자열/g" 를 계속 추가해나가시면 될듯 싶네요

익명 사용자의 이미지

에고 오타

sed -e "s/Morning/Evening/g" -e "s/Hello?/\n\n\nGoodbye/g" < `find . -name "test.txt"`

`find 앞에 | 가 아니라 < 입니다

khalisto의 이미지

sed 에 관한 좋은 정보를 주셔서 감사합니다. ^^