Ce face cat
Numele cat provine de la concatenate (a lega cap la cap). Funcția principală este citirea fișierelor specificate pe rând și trimiterea conținutului lor direct către terminal sau către alt program printr-o conductă (pipe).
Este ideal pentru fișiere scurte (cum ar fi fișiere de configurare sau jurnale mici). Pentru fișiere mari, se preferă paginatori precum less.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
-n, --number |
Numerotează toate liniile de la început până la sfârșit. |
-b, --number-nonblank |
Numerotează doar liniile care nu sunt goale. |
-s, --squeeze-blank |
Comprimă liniile goale consecutive într-o singură linie goală. |
-E, --show-ends |
Afișează un caracter $ la sfârșitul fiecărei linii (util pentru detectarea spațiilor de la capăt). |
Exemple
Exemplul 1: Afișarea și numerotarea liniilor unui fișier
Creăm un fișier și îl citim afișând numărul fiecărui rând.
cat << 'EOF' > cumparaturi.txt
paine
lapte
mere
EOF
cat -n cumparaturi.txt
Rezultat
1 paine
2 lapte
3 mere
Exemplul 2: Concatenarea a două fișiere într-unul singur
Combinăm două liste de date într-un nou fișier rezultat.
echo "Partea 1" > a.txt
echo "Partea 2" > b.txt
cat a.txt b.txt > final.txt
cat final.txt
Rezultat
Partea 1
Partea 2
Greșeli frecvente
- Folosirea inutilă a lui
catîn fața comenzilor care pot citi direct fișierul (antipattern-ul cunoscut ca „Useless Use of cat”, de exemplucat fisier | grep textîn loc degrep text fisier). - Deschiderea fișierelor uriașe cu
cat, ceea ce inundă ecranul terminalului.
Comenzi înrudite
less: Vizualizează conținutul fișierelor pagină cu pagină, permițând navigarea înainte și înapoi.head: Afișează primele linii (implicit primele 10) dintr-un fișier sau flux de date.tail: Afișează ultimele linii dintr-un fișier și permite monitorizarea în timp real a datelor noi.tee: Duplică fluxul de ieșire: îl trimite simultan atât pe ecran, cât și într-unul sau mai multe fișiere.