Nehmen wir an, ich habe eine Datei namens file.txt. Darin befindet sich der Name einer Datei, die ich mit vi bearbeiten möchte. Ich möchte so etwas tun, damit ich die Datei bearbeiten kann:
cat file.txt | vi
Das geht aber nicht. Wie geht das?
Um Dinge zu klären:
Hier sind die Inhalte von file.txt:
textfile
Ich möchte also irgendwie den Inhalt von file.txt an vi senden, damit dasselbe passiert wie beim Tippen vi textfile
.
Der Inhalt von file.txt kann sich ändern. Ich möchte, dass vi die in file.txt aufgeführte Datei bearbeitet.
vi file.txt
. Gibt es etwas Fortgeschrittenes, das Sie versuchen zu tun?xclip
und dann verwendenxclip -o
um auf die Zwischenablage in der Shell in x11 zuzugreifen. nur für den Fall, dass Sie ersetzen müssenpbpaste
...Antworten:
Sie könnten dies versuchen:
oder, um die nutzlose Nutzung der Katze zu vermeiden:
du sagst vi (m) nur ein paar willkürliche Dinge. Wenn Sie möchten, dass vi (m) etwas wie 'hey, diese Datei öffnen' ausführt, müssen Sie ihm die gleichen Befehle geben, die Sie in vi (m) verwenden würden, z. so etwas wie
:e foo.txt
. aber das ist nur komplizierter als das, was ich vorgeschlagen habe.quelle
vi $(cat file.txt)
Zumindest für vim (nicht sicher über vi) kannst du das tun
Das '-' weist vim an, von stdin zu lesen.
quelle