column în Linux / Bash

Aliniază textul în coloane, transformând rânduri separate prin spații sau virgule într-un tabel ușor de citit.

Sintaxă comandă
column -t [-s SEPARATOR] [fișier...]

Ce face column

Comanda column primește rânduri de text și le afișează aliniat. Cea mai folosită formă este column -t: comanda detectează câmpurile fiecărui rând și calculează lățimea fiecărei coloane, apoi le separă prin două spații.

Implicit câmpurile sunt despărțite de spații sau tab-uri. Pentru fișiere CSV sau pentru ieșirea altor comenzi (de exemplu /etc/passwd, separat prin :) indici separatorul cu -s. Pe Linux, column face parte din pachetul util-linux, care are și opțiuni în plus față de varianta BSD: nume de coloane (-N), aliniere la dreapta (-R) și separator de ieșire (-o).

Opțiuni și argumente

Opțiune / Parametru Descriere
-t Creează un tabel: aliniază câmpurile fiecărui rând în coloane.
-s SEPARATOR Caracterele care separă câmpurile la intrare (ex. -s, pentru CSV, -s: pentru /etc/passwd).
-o ȘIR Șirul pus între coloane la ieșire (implicit două spații). Doar în util-linux.
-N NUME,... Dă nume coloanelor; numele apar ca antet al tabelului. Doar în util-linux.
-R COLOANE Aliniază la dreapta coloanele indicate (util pentru sume și numere). Doar în util-linux.

Exemple

Exemplul 1: Alinierea unui fișier cu note

Fișierul are câmpurile separate prin câte un spațiu, deci rândurile nu sunt aliniate. column -t face din el un tabel.

cat > note.txt <<'EOF'
nume oras nota
Ana Cluj 9
Mihai Arad 10
Ioana Sibiu 8
EOF
column -t note.txt

Rezultat

nume   oras   nota
Ana    Cluj   9
Mihai  Arad   10
Ioana  Sibiu  8

Exemplul 2: Afișarea unui fișier CSV ca tabel

Cu -s, virgula devine separatorul de câmpuri.

cat > comenzi.csv <<'EOF'
client,oras,suma
Ana,Cluj-Napoca,1200
Radu,Arad,85
EOF
column -t -s, comenzi.csv

Rezultat

client  oras         suma
Ana     Cluj-Napoca  1200
Radu    Arad         85

Exemplul 3: Antet, aliniere la dreapta și separator propriu (util-linux)

Fișierul nu are antet, așa că îl dăm cu -N; coloana suma este aliniată la dreapta cu -R, iar -o pune o bară verticală între coloane.

printf 'Ana,Cluj,1200\nRadu,Arad,850\n' > plati.csv
column -t -s, -N nume,oras,suma -R suma -o ' | ' plati.csv

Ieșire în terminal

nume | oras | suma
Ana  | Cluj | 1200
Radu | Arad |  850

Greșeli frecvente

  • Câmpurile goale din CSV (Ana,,1200): column -t poate comasa separatorii alăturați, iar valorile ajung în coloana greșită. Completează câmpurile goale (de exemplu cu -) înainte de afișare.
  • Folosirea lui column pentru fișiere CSV cu virgule între ghilimele ("Iași, Copou"): comanda nu înțelege ghilimelele și taie câmpul în două.

Comenzi înrudite

  • cut: Decupează secțiuni, coloane sau intervale de caractere din fiecare linie de text.
  • paste: Lipește rândurile mai multor fișiere unul lângă altul sau unește toate rândurile unui fișier într-unul singur.
  • awk: Limbaj de procesare a textului structurat pe coloane, ideal pentru rapoarte și extragere de date.
  • sort: Sortează liniile de text în ordine alfabetică, numerică sau după o coloană specifică.