grep -e Peugeot -e PeuGeot carlist.txt
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.
답변
‘-‘를 인수로 사용하여 vi 또는 vim을 실행하면 표준 입력에서 편집 할 파일을 읽습니다. 금후:
grep -e Peugeot -e PeuGeot carlist.txt | vi -
필요한 것을 할 것입니다.
답변
grep ... > newfile.txt && vi newfile.txt
또한, 나는 당신 grep
이 향상 될 수 있다고 생각합니다 .
grep 'Peu[gG]eot' carlist.txt > newfile.txt && vi newfile.txt
답변
이외에 다음과 vim -
같은 <(command)
구문을 사용하여 프로세스 대체를 사용할 수도 있습니다 .
vim <(echo This is example.)
vim <(cat /etc/hosts)
또한보십시오:
- 비 대화식으로 파일을 편집하는 방법 (예 : 파이프 라인)? Vi SE에서
- SO의 명령 행 에서 Vim exec 명령
- 찾기를 통해 vi를 호출 | xargs가 터미널을 끊습니다. 왜? SU에서
답변
다음과 같이 출력 리디렉션을 사용할 수도 있습니다.
vi <(grep ...)
마치 별도의 파일에 저장된 것처럼 여러 명령 출력을 리디렉션 할 수 있습니다.
vim -d <(ls) <(ls -a)
답변
에서 ~/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
답변
vi (m) 내에서 또는 vi (m) 외부에서 원하는 것을 수행하는 효과적인 방법이 많이 있습니다.
명령을 실행하고 (임시) 파일을 만든 다음 파일을 편집 하십시오 (Joseph R. ‘s answer 참조 )
grep -e"Peu[gG]eot" carlist.txt && vi /tmp/peugeot.txt
백그라운드에서 명령을 실행하여 임시 파일을 생성하고 “: e!”를 사용하여 파일을 편집하십시오. 파일이 생성 될 때 파일을 새로 고치려면 (로그 파일 및 다른 프로세스에서 생성되는 다른 파일 (예 : cron?)에 유용함)
grep -e "Peu[gG]eot" carlist.txt > /tmp/peugeot.txt &
vi /tmp/peugeot.txt
vi (m)을 실행하고 하위 프로세스를 실행하여 임시 파일을 작성한 후 읽으십시오.
vi
:!grep -e "Peu[gG]eot" carlist.txt > /tmp/peugeot.txt
:r /tmp/peugeot.txt
또는 파일로 전환하면
:e /tmp/peugeot.txt
vi (m)을 실행하고 더블 뱅 “!!” vi 하위 명령을 실행하여 결과를 가져 와서 현재 위치에 삽입합니다 (현재 행을 겹쳐 쓰므로 빈 행이 있는지 확인하십시오).
vi
i
here
empty
there
<esc>
kk
!!grep -e "Peu[gG]eot" carlist.txt
이제 파일 이름에 원하는 파일을 쓸 수 있습니다.
:w /tmp/someotherfilename.txt
그리고 페트르 UZEL의 대답은 ,도 좋다
grep -e "Peu[gG]eot" carlist.txt | vi -
stdin에서 읽는 것
답변
