GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich alle Dateien bearbeiten, die von find in vi in ​​Linux zurückgegeben werden?

Das sollte funktionieren:

find . -name "*.txt" -exec vim {} + 

Verwenden Sie Vim, es ist besser für Ihre Gesundheit. :-)

Der oft übersehene + Option auf -exec lässt alle Dateinamen (bis zur Begrenzung der Zeilenlänge) in einer Zeile erscheinen, d.h. Sie erhalten immer noch alle geöffneten Dateien in einer vim Sitzung (navigiert mit :n für weiter und :N für vorherige Datei).

Mit vim -p Sie erhalten eine Dateiregisterkarte für jede Datei. Kreuzen Sie :help tab-page-commands an für weitere Details.

Mit vim -o Sie erhalten horizontal geteilte Fenster für jede Datei, vim -O vertikal geteilte Fenster. Kreuzen Sie :help window-move-cursor an für mehr Details.

Beachten Sie, dass die vorherige Version dieser Antwort vim $(find . -name "*.txt") ist , funktioniert nicht mit Leerzeichen in Dateinamen und hat Auswirkungen auf die Sicherheit.

Weiterleiten an xargs vi ergibt einen Warning: Input is not from a terminal , plus ein Terminal mit völlig falschem Verhalten danach. Benutzer grawity erklärte warum in einem Kommentar unten und mit etwas mehr Erklärung in dieser Frage.


Oder führen Sie vim und von dort aus:

:args **/*.txt

Linux
  1. So verwenden Sie den Linux-Befehl find zum Suchen von Dateien

  2. Wie finde ich die Header-Dateien der Programmiersprache C unter Linux?

  3. Wie kann ich eine Datei bearbeiten, wenn es kein vi, vim, joe usw. gibt?

  4. Wie finde ich alle fest verlinkten Dateien in einem Dateisystem?

  5. Wie kann ich mehrere Dateien in VIM bearbeiten?

So finden Sie Dateien über die Befehlszeile im Linux-Terminal

Vim-Tipps – Bearbeiten Sie Remote-Dateien mit Vim unter Linux

So entpacken Sie die gz-Dateien unter Linux

So finden Sie Dateien basierend auf dem Zeitstempel in Linux

So finden Sie Dateien, die in den letzten 24 Stunden in Linux geändert wurden

So finden Sie Dateien mit dem fd-Befehl in Linux