Como usar um pipe para editar um arquivo com o vi

15

Digamos que eu tenha um arquivo chamado file.txt. Nele está o nome de um arquivo que quero editar com o vi. Eu quero fazer algo assim para poder editar o arquivo:

cat file.txt | vi

No entanto, isso não funciona. Como isso pode ser feito?

Para esclarecer as coisas:

Aqui está o conteúdo do arquivo.txt:

textfile

Então eu quero de alguma forma enviar o conteúdo do arquivo.txt para o vi para que a mesma coisa aconteça quando digitar vi textfile .

O conteúdo do arquivo.txt pode mudar. Eu quero vi para editar qualquer arquivo listado no arquivo.txt.

    
por tony_sid 31.05.2011 / 06:57

2 respostas

9

você pode tentar isto:

% vi 'cat file.txt'

ou, para evitar o uso de gatos:

% vi '< file.txt'

você está dizendo ao vi (m) apenas um monte de coisas arbitrárias. Se você quer que o vi (m) faça algo como 'hey, abra aquele arquivo' você tem que alimentá-lo com os mesmos comandos que você usaria no vi (m), por exemplo. algo como :e foo.txt . mas isso é mais complicado do que fazer o que eu propus.

    
por 31.05.2011 / 07:06
23

Pelo menos para o vim (não tenho certeza sobre o vi), você pode fazer

cat file.txt | vim -

O '-' diz ao vim para ler stdin.

    
por 19.10.2011 / 00:49