grep 후 vi 가능할까요?

koddakgi의 이미지

grep "패턴" *.c | vi
해서 편집할수 있다면 좋겠습니다.
방법이 있는데 제가 잘모고 있는지...
혹시라도 해서 grep "패턴" *.c | xargs vi 했더니
첫번째파일 읽다가 오류나서 빠져나와버리던군요
혹시 비슷한 방법이라도 있음 올려주시면 감사하겠습니다.
환경은 AIX,ksh 입니다.
그럼 수고들 하십시요

greatkgc의 이미지

egrep haha *.c | vi -

입력을 stdin 으로부터 받아들입니다.

Fe.head의 이미지

vim 에서..
:r !grep "패턴" *.c

겠죠..

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

saxboy의 이미지

:$!ls 라고도 해보시지요.

dreampia의 이미지

vi `grep -l "패턴" *.c`

이라고 하면 됩니다.

grep에서 -l 은 파일명만 넘겨 줍니다.

>/dev/null 2>&1

shr의 이미지

혹시 이런걸 찾으시는건 아닌지요?

grep -nH "패턴" *.c > /tmp/recent_grep && vim -q /tmp/recent_grep

vim 안에서 :cl 명령으로 grep 의 출력 자체를 감상하거나, :cp :cn 명령으로 앞/뒤로 이동할 수도 있습니다.

koddakgi의 이미지

greatkgc님의 방법도 똑같은 오류가 납니다...
fehead 님은 제 질문의 의도를 잘못 이해하신듯...
일치된 결과를 편집하고 싶은게 아니고
전 패턴에 일치된 파일 자체를 편집하고 싶었던것이었는데..
제가 질문을 좀 잘못한듯 합니다....
dreampia님의 방식이 제가 원하는 결과 였습니다.
조그만 생각하면 되는거였는데...
아무튼 글 올려주신분 모두 감사합니다.

여자는 도대체 무엇으로 사는가?

greatkgc의 이미지

koddakgi wrote:
greatkgc님의 방법도 똑같은 오류가 납니다...

vim의 옵션에 있는 건데.. 아마 사용하시는 vi 에디터가 vim이
아닌 모양이네요. :-)

쎄피로의 이미지

vi `grep "xxx" -l *.c`

or

grep "xxx" -l *.c | xargs vi

세상은 넓고, 할 일은 많은데, 난 숨만 쉬고 있니?