cat în Linux / Bash

Procesare și filtrare text POSIX / GNU Coreutils

Afișează conținutul unuia sau mai multor fișiere și le concatenează în ieșirea standard.

Sintaxă comandă
cat [opțiuni] [fișier...]

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 exemplu cat fisier | grep text în loc de grep 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.