Come Utilizzare Linux gatto e tac Comandi

0
463
Fatmawati Achmad Zaenuri/Shutterstock.com

Il gatto e la tac comandi di visualizzare il contenuto di file di testo, ma c’è più che soddisfa l’occhio. Immersione un po ‘ di più e imparare alcune produttivo riga di comando di Linux trucchi.

Questi sono due semplici comandi, spesso liquidato come essere semplicemente troppo semplice per essere di qualche utilità reale. Ma una volta che si conoscono i diversi modi in cui è possibile utilizzare li, vedrai che sono perfettamente in grado di fare la loro giusta quota di sollevamento di carichi pesanti quando si tratta di lavorare con i file.

Il Comando cat

gatto è utilizzato per esaminare il contenuto dei file di testo, e per unire le parti di file insieme per formare un file di grandi dimensioni.

Un tempo—back nell’era del modem dial-up—file binari sono stati spesso suddiviso in più file più piccoli per rendere il download più facile. Invece di scaricare un file di grandi dimensioni, si è tirato indietro ogni file di dimensioni più piccole. Se un singolo file e ‘ stato scaricato correttamente, si sarebbe solo recuperare un file nuovo.

Naturalmente, è quindi bisogno di un modo per ricostituire la raccolta di piccoli file il file binario. Tale processo è stato chiamato concatenazione. Ed è qui che il gatto è entrato e da cui prende il nome.

A banda larga e connessioni in fibra aver causato, in particolare, fade—come, stridulo dial-up suoni—e allora cosa resta per gatto a fare oggi? Molti, in realtà.

Visualizzazione di un File di Testo

Per avere gatto elencare il contenuto di un file di testo in una finestra di terminale il seguente comando.

Assicurarsi che il file è un file di testo. Se si tenta di visualizzare il contenuto di un file binario per la finestra del terminale, i risultati saranno imprevedibili. Si potrebbe finire con un bloccato sessione di terminale o peggio.

gatto poem1.txt

Il contenuto del file poem1.txt sono mostrati nella finestra del terminale.

Questa è solo una parte del famoso poema. Dov’è il resto? C’e ‘un altro file chiamato poem2.txt. Siamo in grado di rendere il gatto elencare il contenuto di più file con un solo comando. Tutto quello che dobbiamo fare è elencare i file in ordine alla riga di comando.

gatto poem1.txt poem2.txt

Che sembra meglio; abbiamo tutta la poesia ora.

Utilizzando il gatto Con meno

La poesia è tutto lì, ma si è sparato davanti alla finestra troppo veloce per leggere i primi versi. Siamo in grado di inviare l’output di cat in meno e scorrere verso il basso attraverso il testo al nostro ritmo.

gatto poem1.txt poem2.txt | meno

Ora possiamo andare avanti e indietro attraverso il testo in uno stream, anche se si svolge in due file di testo distinti.

Numerazione delle Righe in un File

Siamo in grado di cat, il numero di righe del file come viene visualizzato. Per fare questo, si usa l’opzione-n (numero) opzione.

cat-n poem1.txt

Le righe sono numerate, così come sono visualizzati nella finestra del terminale.

Non è il Numero di Righe Vuote

Siamo riusciti ad avere le linee numerate da gatto, ma le righe vuote tra i versi sono conteggiati come bene. Per avere le linee di testo numerate, ma ignorare le righe vuote, usare l’opzione-b (numero-non vuoto) opzione.

cat-b poem1.txt

Ora le linee di testo sono numerate, e le linee vuote vengono ignorate.

Non visualizzare Più Righe Vuote

Se ci sono sezioni consecutive di righe vuote in un file, possiamo chiedere al gatto di ignorare tutti, ma una riga vuota. Guardate questo file.

Il comando successivo sarà causa di gatto per visualizzare solo una riga vuota da ogni gruppo di righe vuote. L’opzione di cui abbiamo bisogno per raggiungere questo obiettivo è l’-s (squeeze-vuoto) opzione.

cat-s poem1.txt

Questo non influenza il contenuto del file in qualsiasi modo; cambia solo il modo in cui il gatto viene visualizzato il file.

Visualizza Le Schede

Se vuoi sapere se gli spazi sono causati da spazi o tabulazioni, si possono trovare utilizzando l’opzione-T (vedi schede) opzione.

cat-T poem1.txt

Le schede sono rappresentati dai caratteri “^I”.

Visualizzare le Estremità delle Linee

È possibile verificare la finale spazio utilizzando l’-E (vedi-end) opzione.

cat-E poem1.txt

Le estremità delle linee sono rappresentate dal carattere“$”.

La Concatenazione Di File

Non ha senso avere un poema salvati in due file, con una metà ciascuno. Andiamo a unirsi a loro insieme e creare un nuovo file con l’intero poema in esso.

gatto poem1.txt poem2.txt > jabberwocky.txt

usiamo gatto a controllare il nostro nuovo file:

gatto jabberwocky.txt

Il nostro nuovo file contiene i contenuti dei due file.

Aggiunta di Testo a un File Esistente

Che sia meglio, ma in realtà, non è l’intero poema. L’ultima strofa è mancante. L’ultima strofa in Jabberwocky è lo stesso come il primo versetto.

Se abbiamo il primo verso di un file, possiamo aggiungere questo al fondo del jabberwocky.txt file, e avremo la completa poesia.

In questo comando successivo, dobbiamo usare >>, non solo >. Se si utilizza un singolo > ti sovrascrivere jabberwocky.txt. Non vogliamo farlo. Vogliamo aggiungere testo a fondo di esso.

gatto first_verse.txt >> jabberwocky.txt

Andiamo a verificare il contenuto della jabberwocky.txt file:

gatto jabberwocky.txt

E, infine, tutte le parti del poema sono insieme.

Reindirizzamento stdin

È possibile reindirizzare l’input da tastiera in un file usando cat. Tutto ciò che vi è di tipo reindirizzato nel file fino a quando si preme Ctrl+D. da Notare l’uso di un solo > perché vogliamo creare il file (o sovrascrivere, se presente).

gatto > my_poem.txt

Possiamo iniziare a digitare appena il comando. Premiamo Ctrl+D quando abbiamo finito. Possiamo quindi controllare il contenuto del nuovo file con:

gatto my-poem.txt

Il suono come un lontano turbina è probabilmente Lewis Carroll filatura nella sua tomba ad alta velocità.

La tac Comando

tac è simile al gatto, ma elenca il contenuto del file in ordine inverso.

Vediamo che:

tac my_poem.txt

E il file è elencato nella finestra di terminale in ordine inverso. In questo caso, non ha alcun effetto sui suoi meriti letterari.

Utilizzo di tac Con stdin

Utilizzando tac senza un nome di file provocherà di operare su input dalla tastiera. Premendo Ctrl+D interrompere la fase di input e tac vi elenco in ordine inverso qualunque cosa tu avessi digitato.

tac

Quando si preme Ctrl+D è colpito, l’ingresso è invertita e sono elencati nella finestra di terminale.

Utilizzo di tac Con File di Log

Oltre a basso grado salone trucchi, può tac fare qualcosa di utile? Sì, è possibile. Molti file di log aggiungere le loro ultime voci alla fine del file. Utilizzo di tac (e, allo stesso tempo, testa) siamo in grado di pop l’ultima voce nella finestra del terminale.

Usiamo la tac per elencare i file syslog in senso inverso, e il tubo in testa. Raccontando la testa per stampare solo la prima riga che riceve (che grazie alla tac è l’ultima riga del file), vediamo l’ultima voce nel file syslog.

tac /var/log/syslog | head -1

testina di stampa l’ultima voce da file syslog e poi esce.

Nota che la testa è solo la stampa di una riga, come abbiamo chiesto—ma la linea è talmente a lungo che avvolge due volte. Ecco perché sembra che tre righe di output nella finestra del terminale.

Utilizzando la tac con il Record di Testo

L’ultimo trucco tac nella manica è una bellezza.

Di solito, tac opera su file di testo, lavorando la sua strada attraverso di loro, riga per riga, dal basso verso l’alto. Una linea è una sequenza di caratteri terminata da un carattere di nuova riga. Ma possiamo dire che tac a lavorare con altri delimitatori. Questo ci permette di trattare “blocchi” di dati all’interno del file di testo come record di dati.

Supponiamo di avere un file di log da qualche programma che abbiamo bisogno di rivedere o analizzare. Diamo un’occhiata al suo formato con meno.

meno file di log.dat

Come si può vedere, c’è una ripetizione di formato per il file. Ci sono sequenze di tre linee di valori esadecimali. Ogni set di tre linee di esadecimale in etichetta la riga che inizia “=SEQ”, seguita da una sequenza di cifre.

Se ci scorrere fino alla fine del file, possiamo vedere che ci sono un sacco di questi record. Il finale è numerato 865.

Supponiamo che per qualche motivo non abbiamo bisogno di lavorare attraverso questo file in ordine inverso, dati record di record di dati. La linea di ordine di tre esadecimale linee in ogni record di dati devono essere conservati.

Faremo in una nota che le ultime tre righe nel file di avvio con valori esadecimali 93, E7 e B8, in che ordine.

Usiamo tac per invertire il file. Si tratta di un file molto lungo quindi ci pipe in meno.

tac file di log.dat | meno

Che inverte il file, ma non è il risultato che vogliamo. Si desidera che il file sia invertita, ma le linee di ogni record di dati devono essere nel loro ordine originale.

Abbiamo registrato in precedenza che le ultime tre righe nel file di avvio con valori esadecimali 93, E7 e B8, in che ordine. L’ordine di queste linee è stata invertita. Inoltre, l’ “=SEQ” linee sono ora al di sotto di ogni set di tre esadecimale linee.

tac per il salvataggio.

tac -b -r -s ^=SEQ.+[0-9]+*$ logfile.dat | meno

Let’s break che verso il basso.

L’-s (separatore) opzione informa tac che vogliamo usare come delimitatore tra i nostri record. Si dice tac di non usare il suo solito carattere di nuova riga, ma di utilizzare il nostro separatore invece.

L’-r (regex) opzione dice a tac per trattare il separatore di stringa come una espressione regolare.

L’-b (prima opzione), cause tac lista il separatore prima di ogni record invece dopo (che è la solita posizione del separatore di default, il carattere di nuova riga).

L’-s (separatore) stringa ^=SEQ.+[0-9]+*$ è decifrato come segue:

Il carattere ^ rappresenta l’inizio della linea. Questo è seguito da =SEQ.+[0-9]+*$. Questo indica che tac per cercare tutte le occorrenze di “=SEQ.” all’inizio di una riga, seguito da una sequenza di cifre (indicato da [0-9]), e seguita da un qualsiasi altro set di caratteri (indicate con *$).

Siamo tubazioni tutta la partita in meno, come al solito.

Il nostro file è ora presentato in ordine inverso con ogni “=SEQ” linea di etichette elencate prima le sue tre linee di dati esadecimali. Le tre linee di valori esadecimali sono nel loro ordine originale all’interno di ogni record di dati.

Siamo in grado di controllare semplicemente questo. Il primo valore delle prime tre righe di formato esadecimale (che sono le ultime tre righe prima che il file è stato invertito) corrispondono ai valori che abbiamo preso un record precedenti: 93, E7 e B8, in che ordine.

Questo è un bel trucco per una finestra di terminale one-liner.

Tutto Ha uno Scopo

Nel mondo Linux, anche apparentemente semplici comandi e utilità può avere sorprendenti e potenti proprietà.

La filosofia di design di semplice utilità che fare bene una cosa, e che facilmente interagire con altri programmi di utilità, ha dato adito a strane po ‘ di comandi, come la tac. A prima vista, sembra essere un po ‘ una stranezza. Ma quando si peer sotto la superficie, c’è un inaspettato potere che potrete sfruttare a vostro vantaggio.

O, come un’altra filosofia, dice, “non disprezzare il serpente per non avere le corna, per chi ci dice che non deve diventare un drago?”

CONTINUA A LEGGERE

  • “Come Vedere Quali Applicazioni Stanno Utilizzando la Tua Webcam su Windows 10
  • “Future Tech: di Cosa stiamo Più Entusiasta
  • “Come Smart Case Di Lavoro?
  • “Cosa sta per Accadere al Vostro Huawei Onore o Telefono?
  • “Sarà una Smart Plug Pagare Per se Stessa?