find 와 vi를 조합해서 개행문자가 포함된특정문자열을 삭제하고자 합니다.

khalisto의 이미지

안녕하세요.

여러가지 방법을 검색하던 차에 해결이 잘 안되어 질문드립니다.

find . -name "xx" -exec vi -c ":/apple/ d" -c "wq" "{}" \;

위 명령어는 xx 파일 내의 apple 이라는 키워드가 포함된 line 을 삭제하고 저장하라는 명령어 이며 실제 잘 동작하는 것을 확인햇습니다만

만일 xx 파일내용이 아래와 같이

apple
ornage

의 형식으로 2줄로 되어있는경우 이를 한번에 삭제하려면 어떻게 해야하는지 모르겠네요.

find . -name "xx" -exec vi -c ":/apple \norange/ d" -c "wq" "{}" \; (이방법으로 해보았으나 실패)