파이프를 사용하여 vi로 파일을 편집하는 방법


15

file.txt라는 파일이 있다고 가정 해 봅시다. vi로 편집하려는 파일 이름입니다. 파일을 편집 할 수 있도록 이와 같은 작업을 수행하고 싶습니다.

cat file.txt | vi

그러나 그것은 작동하지 않습니다. 어떻게 할 수 있습니까?

일을 명확히하기 위해 :

file.txt의 내용은 다음과 같습니다.

textfile

그래서 어떻게 든 file.txt의 내용을 vi로 보내서 입력 할 때와 동일한 일이 발생하도록하고 싶습니다 vi textfile.

file.txt의 내용은 변경 될 수 있습니다. vi가 file.txt에 나열된 모든 파일을 편집하고 싶습니다.


나는 vi = vim이라고 생각하지 않습니다. 이 질문에 차이가 있다는 것을 모르겠지만 태그가 잘못되었습니다.
soandos

귀하의 질문에 더 많은 질문이있을 것으로 생각합니다. 임의로 이름이 지정된 파일을 여는 것이 vi의 기본 사용법입니다. 즉 : vi file.txt. 더 고급스러운 일이 있습니까?
camster342

vi는 OSX 및 다른 최신 Linux 시스템에서 vim을 시작합니다.
tony_sid

실제로 이름이 OSX 클립 보드에 저장된 파일을 편집하려고합니다. pbpaste를 입력하면 파일 이름이 표시됩니다. 실제로 파일을 입력하지 않고 클립 보드에 저장된 내용을 사용 하여이 파일을 편집하려고합니다. 리눅스에는 pbpaste가 없지만 cat 파일 이름에서 출력을 얻는 것과 본질적으로 동일합니다.
tony_sid

x11의 셸에서 클립 보드에 액세스하고 설치 xclip하는 xclip -o데 사용 합니다. 당신이 교체해야 할 경우를 대비하여 pbpaste...
akira

답변:


9

당신은 이것을 시도 할 수 있습니다 :

% vi `cat file.txt`

또는 고양이의 유소년 사용을 피하기 위해 :

% vi `< file.txt`

당신은 vi (m)에게 단지 임의의 것들을 말하고 있습니다. vi (m)이 'hey, 해당 파일 열기'와 같은 작업을 수행하려면 vi (m)에서 사용하는 것과 같은 명령을 입력해야합니다 (예 : vi). 같은 :e foo.txt. 그러나 그것은 내가 제안한 것보다 훨씬 복잡합니다.


그들은 작동하지 않았다.
tony_sid

4
그것들은 백틱입니다, 당신은 그것들을 올바르게 입력 했습니까? 그들은 서브 쉘을 열고, 'cat'을 실행한다. ... 그래도 동작하지 않는다면, 시도해보십시오 vi $(cat file.txt)
akira

오, 이제 작동합니다. 고마워.
tony_sid

23

적어도 vim (vi에 대해서는 확실하지 않음)의 경우 할 수 있습니다

cat file.txt | vim -

'-'는 vim에게 stdin에서 읽도록 지시합니다.


1
죄송하지만 정답이 아닙니다. 이것은 'textfile'내용으로 vim을 엽니 다. 질문자는 vim이 'textfile'자체를 열기를 원합니다. 나는 공감했지만 슬프게도 여기서 명성이 충분하지 않습니다.
scubbo

스쿠버가 맞아! 내 대답은 stdin에서 무언가를 배관하는 데 더 유용합니다.
Jeff
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.