grep 검색 결과를 새 vi 파일로 파이프하는 방법

grep 검색 결과를 새 vi 파일로 파이프하는 방법

나는 carlist.txt를 검색하고 몇 가지 항목을 꺼내곤 했습니다 . 이것이 나에게 파이프로 연결될 것이라고 grep -e Peugeot -e PeuGeot carlist.txt생각했지만 이것이 내가 얻은 것입니다:grep -e Peugeot -e PeuGeot carlist.txt | vi

Vim: Warning: Input is not from a terminal
Vim: Error reading input, exiting...
Vim: preserving files...
Vim: Finished.

답변1

"-"를 인수로 사용하여 vi 또는 vim을 실행하면 표준 입력에서 편집할 파일을 읽습니다. 그러므로:

grep -e Peugeot -e PeuGeot carlist.txt | vi -

당신이 필요로하는 것을 할 것입니다.

답변2

이 외에도 vim -다음 구문을 사용하여 프로세스 대체를 사용할 수 있습니다. <(command)예:

vim <(echo This is example.)
vim <(cat /etc/hosts)

또한보십시오:

답변3

당신은 사용해야합니다출력 리디렉션:

grep ... > newfile.txt && vi newfile.txt

또한 귀하의 서비스도 grep개선될 수 있다고 생각합니다.

grep 'Peu[gG]eot' carlist.txt > newfile.txt && vi newfile.txt

답변4

존재하다 ~/bin/r:

#!/bin/sh
[ $# -eq 0 ] && set -- -;
exec vi -R "$@"

존재하다 ~/.vimrc:

:  au StdinReadPost * set buftype=nofile

그 다음에:

ls |r
grep -e Peugeot -e PeuGeot carlist.txt | r

나는 가지고있다

r- () { "$@" | r; }

~/.bashrc,경우 에는

r- ls -l

관련 정보