Ho visto il comando cat emergere in alcune cose online ed ero curioso di sapere cosa cat
facesse e a cosa servisse nel contesto di qualcuno che sta semplicemente facendo delle semplici cose da riga di comando.
Ho visto il comando cat emergere in alcune cose online ed ero curioso di sapere cosa cat
facesse e a cosa servisse nel contesto di qualcuno che sta semplicemente facendo delle semplici cose da riga di comando.
Risposte:
cat
's scopo primario è quello con gatto file Enate. cat file1 file2 ...
mostrerà il contenuto dei file
, file2
e gli altri uno dopo l'altro, come se i contenuti fossero in un unico file. Vedi la manpage :
NAME
cat - concatenate and print files
È pensato per l'uso in cui:
un comando target non può leggere da file ed è necessario passargli più file. Un esempio è l' tr
utilità. Di solito, con un file, dovresti fare:
tr < file
Ma con più file, il reindirizzamento non può essere utilizzato, quindi devi fare:
cat file1 file2 ... | tr
wc
, che stampa i conteggi di ciascun file, insieme ai nomi dei file, dove potresti aver desiderato solo il totale, senza un nome file.Ricordate che la maggior parte dei comandi che si incontrano ( grep
, sed
, awk
, sort
, ...) in grado di leggere i file perfettamente bene.
Se si desidera visualizzare il contenuto di un file, utilizzare un cercapersone - less
e more
sono entrambi in grado di presentare i file per la visualizzazione e sono molto più convenienti da usare.
cat
è uno dei comandi più utilizzati sui sistemi operativi simili a Unix. Ha tre funzioni correlate per quanto riguarda i file di testo:
la sintassi generale del gatto è:
cat [options] [filenames] [-] [filenames]
L'uso più comune di cat è leggere il contenuto dei file e cat è spesso il programma più conveniente per questo scopo. Tutto ciò che è necessario per aprire un file di testo per la visualizzazione sul monitor è digitare la parola cat seguita da uno spazio e il nome del file, quindi premere il tasto INVIO. Ad esempio, di seguito verranno visualizzati i contenuti di un file denominato file1:
cat file1
Il secondo ruolo del gatto è la concatenazione. (Questa è la fonte del curioso nome del gatto.) Non c'è alcun effetto sui file originali.
Ad esempio, il comando seguente concatena le copie del contenuto dei tre file file1, file2 e file3:
cat file1 file2 file3
Il contenuto di ciascun file verrà visualizzato sullo schermo del monitor. Questo output può essere facilmente reindirizzato utilizzando l'operatore di reindirizzamento dell'output su un altro file, ad esempio file4, utilizzando quanto segue:
cat file1 file2 file3 > file4
Grazie al commento di @muru : cat è in grado di creare nuovi file in base alla funzione di reindirizzamento della shell e non a se stessa
Per file di piccole dimensioni questo è spesso più semplice rispetto all'utilizzo di vi, gedit o altri editor di testo. Si ottiene digitando cat seguito dall'operatore di reindirizzamento dell'output e dal nome del file da creare, quindi premendo ENTERe infine premendo contemporaneamente i tasti Ctrl& d.
Ad esempio, è possibile creare un nuovo file denominato file1 digitando
cat > file1
quindi premere ENTERe contemporaneamente premere i tasti Ctrl& d.
PS1: se esiste già un file denominato file1, verrà sovrascritto
PS2: puoi aggiungere al file uscito usando l'operatore append >>
esempio cat >> file1
Il comando cat può anche essere usato (a seconda della funzione di reindirizzamento della shell) per creare un nuovo file e trasferire ad esso i dati da un file esistente. Esempio: crea una copia del file oldfile.txt
:
cat oldfile.txt > newfile.txt
Riferimenti:
cat
non sta creando quei file - la shell è quando hai usato il reindirizzamento. Potresti averlo fatto bene echo foo > file1
.
cat
ciò che viene effettivamente fatto da qualcos'altro. Ad esempio, fare less file1 > file2
(o grep '.*' file1 > file
o awk 1 file1 > file2
o ...) ha lo stesso effetto. Idem per 4. Questi sono solo abusi.
> file
e dare lo stesso risultato, ma non posso considerarlo valido farlo con Cat ?!
cat
non sta creando il file. Dire che cat
crea o copia il file è semplicemente falso.
Può essere usato per mostrare il contenuto di un file. Ad esempio: cat "my file.txt"
. Puoi anche fare man cat
per mostrarti i dettagli su cosa cat
può essere utilizzato.
Ecco un altro modo per creare file usando il reindirizzamento della shell (o piping) e cat
:
cat << EOF > foo.sh
#!/bin/sh
echo 'Hello World!'
EOF
cat << EOF
produrrà le seguenti righe fino a quando la stringa non EOF
verrà nuovamente incontrata. Quindi >
( >>
) reindirizzerà l'output sul file foo.sh
. In alternativa, se è necessario creare un file come root, è possibile reindirizzare l'output al comando tee
( tee -a
), eseguito dal comando sudo
:
cat << EOF | sudo tee foo.sh && sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
chmod +x
) se è stato creato con successo ( &&
).$
) dovrebbe essere evitato (con \
) all'interno dell'output di cat
.
< <(cat file[12]) tr
così come<<<$(cat file[12]) tr
entrambi sono modi perfettamente validi per reindirizzare più file. Naturalmente è necessario anchecat
quello, solo che le tubazioni non sono l'unico modo.