Digamos que eu tenho um arquivo chamado file.txt. Nele está o nome de um arquivo que eu quero editar com o vi. Eu quero fazer algo assim para que eu possa editar o arquivo:
cat file.txt | vi
No entanto, isso não funciona. Como pode ser feito?
Para esclarecer as coisas:
Aqui está o conteúdo do arquivo.txt:
textfile
Então, de alguma forma, quero enviar o conteúdo de file.txt para o vi, para que o mesmo aconteça ao digitar vi textfile
.
O conteúdo do arquivo.txt pode mudar. Eu quero que o vi edite qualquer arquivo listado em file.txt.
vi file.txt
. Há algo mais avançado que você está tentando fazer?xclip
e usexclip -o
para acessar a área de transferência no shell no x11. apenas no caso de você precisar substituirpbpaste
...Respostas:
você pode tentar o seguinte:
ou, para evitar o uso usual de gato:
você está dizendo ao vi (m) apenas um monte de coisas arbitrárias. se você deseja que o vi (m) faça algo como 'ei, abra esse arquivo', você deve alimentar os mesmos comandos que você usaria no vi (m), por exemplo. algo parecido
:e foo.txt
. mas isso é apenas mais complicado do que fazer o que eu propus.fonte
vi $(cat file.txt)
Pelo menos para o vim (não tenho certeza sobre o vi), você pode fazer
O '-' diz ao vim para ler a partir de stdin.
fonte