GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso modificare tutti i file restituiti da find in vi in ​​Linux?

Questo dovrebbe risolvere il problema:

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

Usa Vim, è meglio per la tua salute. :-)

Il spesso trascurato + opzione a -exec fa apparire tutti i nomi di file (fino ai limiti di lunghezza della riga) in una riga, ovvero tutti i file vengono aperti in uno vim sessione (navigato con :n per il prossimo e :N per il file precedente).

Con vim -p ottieni una scheda file per ogni file. Seleziona :help tab-page-commands per maggiori dettagli.

Con vim -o otterrai finestre divise orizzontalmente per ogni file, vim -O finestre divise verticalmente. Seleziona :help window-move-cursor per ulteriori dettagli.

Nota che la versione precedente di questa risposta, vim $(find . -name "*.txt") , non funziona con gli spazi nei nomi dei file e ha implicazioni sulla sicurezza.

Piping in xargs vi dà un Warning: Input is not from a terminal , oltre a un terminale con un comportamento completamente fasullo in seguito. L'utente grawity ha spiegato perché in un commento qui sotto e con qualche spiegazione in più in questa domanda.


Oppure esegui vim e da lì:

:args **/*.txt

Linux
  1. Come utilizzare il comando trova di Linux per trovare i file

  2. Come posso trovare i file di intestazione del linguaggio di programmazione C in Linux?

  3. Come posso modificare un file se non ci sono vi, vim, joe, ecc.?

  4. Come posso trovare tutti i file hardlink su un filesystem?

  5. Come posso modificare più file in VIM?

Come trovare i file usando la riga di comando nel terminale Linux

Suggerimenti Vim:modifica file remoti con Vim su Linux

Come decomprimere i file gz in Linux

Come trovare file basati su timestamp in Linux

Come trovare i file modificati nelle ultime 24 ore in Linux

Come trovare file con il comando fd in Linux