GNU/Linux >> Linux Esercitazione >  >> Linux

Combina più comandi unix in un unico output

Un altro modo è

{ grep ...; bzgrep ...;} >file

&& ha la difficoltà che il bzgrep non verrebbe eseguito se grep fallito.

Nota lo spazio obbligatorio dopo la parentesi graffa di apertura e il punto e virgola dopo l'ultimo comando. In alternativa, puoi usare la sintassi della subshell (parentesi invece di parentesi graffe), che non è così esigente:

(grep ...; bzgrep ...) >file

bzgrep assume automaticamente il valore predefinito normale grep se un file non è compresso con bzip. Quindi quanto segue dovrebbe essere sufficiente:

bzgrep [email protected] maillog *bz2 | mail -s "logs yay" [email protected]

oh ovviamente ecco anche la mia soluzione GNU Parallel obbligatoria:

parallel -m bzgrep [email protected] ::: maillog* *bz2 | mail -s "logs yay" [email protected]

che potrebbe essere molto più veloce se stai controllando molti file.


Ecco un altro modo per farlo (supponendo che tu stia eseguendo bash, cosa che probabilmente stai facendo):

cat <(bzgrep ...) <(grep ...)

Qui bash invia in modo trasparente l'output dei comandi bzgrep e grep in cat come se fossero file (e in un certo senso sono sotto il cofano, i dettagli nell'url in fondo).

Nel tuo caso particolare consiglierei la soluzione di Phil, ma quanto sopra è un buon trucco da tenere nella borsa.

Se sei interessato, puoi leggere di più qui:http://www.tldp.org/LDP/abs/html/process-sub.html


Linux
  1. Output su Stdout e allo stesso tempo Grep in un file?

  2. Invio di "ps" su più server, output che va a un file di testo?

  3. Come unire più connessioni Internet in una?

  4. Come si può combinare una serie di dichiarazioni Grep convogliate insieme in un'unica dichiarazione Grep?

  5. Tutorial Unix Sed:come eseguire più comandi Sed

Come unire più righe in una in un file in Linux

Come eseguire più comandi Linux in un unico comando

Come unire più file PDF in un unico PDF in Linux

Come unire/unire più file audio in uno in Linux

MultiCD:uno script di shell per combinare più ISO avviabili in un unico CD

3 metodi per visualizzare l'output di coda -f di più file di registro in un terminale