Come si fa a pipitare l'output di un comando in un file in Linux

Come si fa a pipitare l'output di un comando in un file in Linux
UN tubo è un comando utilizzato dalla maggior parte degli utenti Linux per il reindirizzamento dell'output di un comando a qualsiasi file. I sistemi operativi UNIX e Linux utilizzano questo comando per l'invio dell'output di qualsiasi processo, output o programma come input per un altro processo. Questi sistemi operativi consentono la connessione tra i comandi STDOUT e STDIN. Il personaggio del tubo '|' può essere utilizzato per la realizzazione di questa funzione.

È anche possibile pensarlo come un legame temporaneo ma diretto tra due o più processi, comandi o programmi. I filtri sono quei programmi di riga di comando che eseguono l'elaborazione aggiuntiva.

Questa connessione diretta tra processi o comandi consente loro di eseguire e passare contemporaneamente i dati tra loro senza affrontare il problema di controllare la schermata di visualizzazione o i file di testo temporanei. Nella pipeline, il flusso dei dati è da sinistra a destra che dichiara i tubi sono unidirezionali. Ora, diamo un'occhiata ad alcuni esempi pratici dell'uso di tubi in Linux.

Piping l'elenco di file e directory:

Nel primo esempio, abbiamo illustrato come è possibile utilizzare il comando pipe per passare l'elenco di directory e file come "input" a Di più comandi.

$ ls -l | Di più

Qui, l'output di "LS" è considerato input dal comando "più". In un momento, l'output del comando LS è mostrato sullo schermo a seguito di questa istruzione. Il tubo fornisce la funzionalità del contenitore per ricevere l'output del comando LS e passare a più comandi come input.

Poiché la memoria principale esegue l'implementazione del tubo, questo comando non utilizza il disco per la creazione di un collegamento tra l'output standard LS -L all'ingresso standard di più comando. Il comando sopra è analogo alla seguente serie di comandi in termini di operatori di reindirizzamento di ingresso/output.

$ ls -l> temp
$ di più < temp

Controlla manualmente il contenuto del file "temp".

$ rm temp

Ordinare e stampare valori unici usando i tubi:

Ora vedremo un esempio di utilizzo del tubo per l'ordinamento di un contenuto di file e la stampa dei suoi valori univoci. A tale scopo, combineremo i comandi "ordin" e "uniq" con un tubo. Ma prima selezionare qualsiasi file contenente dati numerici, nel nostro caso abbiamo il "record.file txt ".

Scrivi il comando seguente in modo che prima dell'elaborazione della pipeline, hai un'idea chiara sui dati del file.

$ cat record.TXT

Ora, l'esecuzione del comando seguente ordinerà i dati del file, visualizzando i valori univoci nel terminale.

$ ordina record.txt | Uniq

Utilizzo del tubo con comandi della testa e della coda

Puoi anche usare comandi "testa" e "coda" per la stampa di righe da un file in un intervallo specifico.

$ cat samplefile | testa -7 | coda -5

Il processo di esecuzione di questo comando selezionerà le prime sette righe di "Samplefile" come input e lo passerà al comando di coda. Il comando di coda recupererà le ultime 5 righe da "Samplefile" e le stamperà nel terminale. Il flusso tra l'esecuzione del comando è tutto a causa dei tubi.

Abbinamento di uno schema specifico nei file corrispondenti utilizzando i tubi

I tubi possono essere utilizzati per trovare file con un'estensione specifica nell'elenco estratto del comando LS.

$ ls -l | Trovare ./ -Type f -Name "*.TXT"

Comando tubo in combinazione con "grep", "tee" e "wc"

Questo comando selezionerà "Alex" da "Record.File txt ", e nel terminale, stamperà il numero totale di occorrenze del modello" Alex ". Qui, i comandi "Cat", "Grep", "Grep", "Tee" e "WC".

$ cat record.txt | grep "Alex" | TEE FILE1.txt | wc -l
$ cat file1.TXT

Conclusione:

Un tubo è un comando utilizzato dalla maggior parte degli utenti Linux per reindirizzare l'output di un comando a qualsiasi file. Il personaggio del tubo '|' può essere utilizzato per realizzare una connessione diretta tra l'output di un comando come input dell'altro. In questo post, abbiamo visto vari metodi per tubarsi l'output di un comando al terminale e ai file.