Qual è il comando CAT in Linux e come usarlo
Il cat
comando è il modo più semplice di Linux per combinare i file insieme. È l’abbreviazione di conCATenation, ma c’è molto di più che copiare e incollare un file accanto all’altro.
Formato di base per il comando CAT
Ecco come si usa normalmente il cat
comando:
cat file1 file2 file3 > output
L’ordine di accodamento dei file uno accanto all’altro si basa sull’ordine in cui hai scritto i file all’interno del comando. In questo esempio, quando si apre il file “output”, il contenuto di “file1” sarà seguito da “file2”, quindi da “file3” e così via.
Puoi aggiungere tutti i file che desideri purché il tuo filesystem possa supportare la dimensione finale dell’output.
Inoltre, come in tutti i comandi del terminale Linux, dovrai includere l’estensione del file quando li aggiungi. Ad esempio, se stavi lavorando con file JSON e hai intenzione di combinarne due insieme, dovrai digitarlo come Questo:
cat file1.json file2.json > combined_file.json
CAT senza la porzione di uscita
Per cat
, la parte di output è facoltativa. La rimozione di questa parte stampa il contenuto di ciascun file nel terminale.
Puoi farlo anche su singoli file. Ricorda che non sarai in grado di modificare il contenuto qui come faresti con i file DOC o TXT su un editor di testo . Il cat
comando diventa più simile a un visualizzatore di file di testo che a un editor.
Flag di comando CAT
Ci sono sei flag che puoi usare ogni volta che usi CAT su Linux:
-
-n
enumera ogni riga a partire da 1. -
-b
enumerare solo le righe che contengono caratteri. -
-s
comprimere più righe vuote consecutive in una riga vuota. -
-e
segnare la fine di ogni riga. -
-q
non visualizzare un messaggio se CAT non riesce a trovare un file di input. -
-t
visualizzare i caratteri di tabulazione come^I
.
Vedremo come funziona ognuno e come puoi usarli.
Usando il flag -n
Il -n
flag enumera il contenuto di un file per riga e lo stampa sul terminale. Non modifica il file stesso.
cat -n file1.txt
Ma puoi ancora salvare l’output (con enumerazione) facendo questo:
cat -n file1.txt > file2.txt
Ciò enumera il contenuto di “file1.txt” e lo salva in “file2.txt”.
Puoi anche enumerare più file insieme. Il cat
comando continuerà a contare dopo la fine del primo file. Se il primo file termina con 33, il file successivo inizierà da 34 e così via.
Usando il flag -b
Il problema con il -n
flag è che enumera anche le righe vuote. Se avevi un file con molti spazi bianchi per il layout o la leggibilità, avrai -b
invece bisogno del flag.
cat -b file1.txt
Il formato per la -b
bandiera funziona allo stesso modo di quello della -n
bandiera. Inoltre, se li usi insieme, il -b
flag sovrascriverà il -n
flag indipendentemente da come li ordini.
Usando il flag -s
Il -s
flag è un altro comodo cat
flag di comando per quando hai molto spazio bianco nei tuoi file. Funziona riducendo tutti gli spazi bianchi ripetuti in uno solo, il che facilita la leggibilità.
cat -s file2.txt
Questo flag cerca almeno 2 righe vuote consecutive prima di unirle. Se il tuo file contiene una singola riga vuota tra due riempite, la salterà e cercherà quella successiva.
Usando il flag -e
Il -e
flag trova la fine di ogni riga e aggiunge una $
alla fine di ogni riga.
cat -e file1.txt
Questo flag semplifica il lavoro con i tuoi file di testo quando utilizzi espressioni regolari o regex . Puoi fare in modo che uno script o un programma aggiuntivo legga il contenuto del file salvato e controlli le estremità usando regex.
Ricorda che il -e
flag aggiunge anche un $
alla fine di ogni riga vuota, quindi potresti volerlo usare insieme -s
per rendere le cose più pulite.
Usando il flag -t
Il -t
flag è simile al -e
flag, ma cerca invece il “carattere di tabulazione” e lo sostituisce con un ^I
. La cosa fantastica di questo flag è che sa come differenziare “tab” dal carattere “doppio spazio”.
cat -t file1.txt > file2.txt
Ciò significa che se usi i flag -n
o -b
accanto al -t
flag, leggerà i caratteri spazio così come sono e li lascerà stare. Lo stesso vale se aggiungi un sacco di spazi per imitare un carattere “tab”.
Usi del comando CAT di Linux
Il cat
comando dovrebbe essere utilizzato solo quando si tenta di combinare i file di testo riga per riga. Non aspettarti che il cat
comando prenda due righe di testo e le combini in un’unica riga.
D’altra parte, vedrai molto utile per questo quando stai cercando di ripulire i file di testo affinché altri script possano lavorare. I flag -e
, -t
, -b
e -s
sono tutti abbastanza utili da farti risparmiare tempo dalla codifica del tuo script per qualunque cosa questi flag già facciano.
Aiuta anche a semplificare la visualizzazione dei file di testo rispetto al dover utilizzare sempre l’editor Nano .
Ma se stai cercando di fare qualcosa per cui non è pensato, allora potrebbe essere il momento di dare un’occhiata ad altri modi per concatenare i file su Linux .
Domande frequenti
Cosa succede se utilizzo il comando CAT su un file video?
I file video contengono una cosa chiamata “intestazione”. Questa è un’informazione che mostra come il video è stato codificato. Se usi il comando CAT per concatenare i video, ne rimarrai uno con le informazioni di intestazione inserite tra i dati video codificati. La maggior parte degli spettatori leggerà questo e penserà che il tuo file sia stato danneggiato. È meglio usare uno strumento diverso come FFmpeg per farlo con i file video.
Posso usare il comando Linux CAT con file di cartelle diverse?
Puoi trattare i nomi dei tuoi file come percorsi di cartelle quando combini i file nelle cartelle usando il cat
comando. In questo modo, puoi combinare un file in Desktop con un altro da Foto procedendo in questo modo: cat Desktop/file1.txt Photos/Photos.txt >> output.txt
.
Cosa succede quando utilizzo il nome file di un file esistente come output per il comando CAT?
A seconda che tu stia utilizzando >
o >>
, sovrascriverà o aggiungerà il contenuto al file esistente. Il >>
comando aggiunge a un file o crea il file se non esiste. Il >
comando sovrascrive il file se esiste o lo crea se non esiste.
Per evitare congetture, è sempre meglio salvare l’output in un file inesistente con un nome file univoco.
Lascia un commento