GNU/Linux >> Linux Esercitazione >  >> Linux

eseguendo un comando su ogni riga in un file di testo

Quindi, hai un file di testo come questo:

file1
file2
..

E vuoi eseguire un comando su ogni riga del file (diciamo, chmod 644). Come tutte le cose UNIX, ci sono più di un modo per fare le cose, ma ecco la risposta rapida e sporca:

xargs -0 -n 1 chmod 644 < <(tr \\n \\0 <filelist.txt)

Quindi, questo eseguirà xargs su std. input (filelist.txt).
-n è max argomenti – in questo caso abbiamo 1 arg. (l'elenco dei file nel file – per riga).
-0 significa che le righe di input sono terminate da un carattere nullo, non da uno spazio bianco, per mantenere le cose in ordine.
Infine, eseguiamo tr che elimina caratteri, in questo caso rimuovendo le nuove righe e gli spazi bianchi.


Linux
  1. Riduci le dimensioni del PDF con questo trucco da riga di comando

  2. Come uccidere la riga di comando di Chromium su Ssh?

  3. Come analizzare ogni riga di un file di testo come argomento di un comando?

  4. Esegui il comando per ogni file nella directory corrente

  5. Importazione PostgreSQL CSV dalla riga di comando

Comando Diff in Linux con esempi

Copia un file in più directory dalla riga di comando su Linux

Visualizza il contenuto di un file nella riga di comando di Linux

Come estrarre il file Tar.xz sulla riga di comando di Linux

È possibile con Gedit o la riga di comando modificare ogni quarta riga di un file di testo?

5 comandi per visualizzare il contenuto di un file nella riga di comando di Linux