나는 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