Ce face paste
Comanda paste citește în paralel mai multe fișiere și scrie pe același rând primul rând din fiecare fișier, apoi al doilea rând din fiecare și așa mai departe. Implicit pune un tab între ele. Este operația inversă lui cut: cut scoate coloane, paste le alătură.
Cu -s (serial) comanda lucrează altfel: ia toate rândurile unui fișier și le pune pe un singur rând. Combinată cu -d,, transformă o listă într-un șir separat prin virgulă. Pentru a citi de la intrarea standard se dă - ca nume de fișier.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
-d LISTĂ |
Caracterele folosite ca separator în loc de tab (ex. -d, sau -d';'). Dacă lista are mai multe caractere, sunt folosite pe rând. |
-s |
Lipește rândurile fiecărui fișier unul după altul, pe un singur rând. |
- |
Citește de la intrarea standard (dintr-un pipe). Dacă apare de două ori, ia câte două rânduri pe rând. |
Exemple
Exemplul 1: Alăturarea a două liste: nume și orașe
Rândul 1 din primul fișier ajunge lângă rândul 1 din al doilea, separate prin ;.
printf 'Ana\nMihai\nIoana\n' > nume.txt
printf 'Iași\nCluj\nBrașov\n' > orase.txt
paste -d';' nume.txt orase.txt
Rezultat
Ana;Iași
Mihai;Cluj
Ioana;Brașov
Exemplul 2: Transformarea unei liste într-un șir separat prin virgulă
-s pune toate rândurile pe unul singur, iar - spune că datele vin din pipe.
printf 'Ana\nMihai\nIoana\n' | paste -sd, -
Rezultat
Ana,Mihai,Ioana
Exemplul 3: Gruparea rândurilor câte două
Cu - -, paste citește două rânduri din intrarea standard pentru fiecare rând scris: util când un fișier are numele pe un rând și nota pe rândul următor.
printf 'Ana\n9\nMihai\n10\nIoana\n8\n' | paste -d' ' - -
Rezultat
Ana 9
Mihai 10
Ioana 8
Greșeli frecvente
- Fișiere cu număr diferit de rânduri:
pastenu dă eroare, ci lasă câmpuri goale pentru fișierul mai scurt. Verifică întâi numărul de rânduri cuwc -l. - Așteptarea ca
pastesă potrivească rândurile după o cheie (ca un JOIN): comanda lipește doar după poziție. Pentru potrivire după cheie foloseștejoin(pe fișiere sortate) sauawk.
Comenzi înrudite
cut: Decupează secțiuni, coloane sau intervale de caractere din fiecare linie de text.column: Aliniază textul în coloane, transformând rânduri separate prin spații sau virgule într-un tabel ușor de citit.comm: Compară două fișiere sortate și arată ce rânduri sunt doar în primul, doar în al doilea sau în amândouă.awk: Limbaj de procesare a textului structurat pe coloane, ideal pentru rapoarte și extragere de date.