Paste (Unix)
paste è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1] e GNU[2], che legge uno o più file di testo (o lo standard input) e ne unisce le linee corrispondenti, oppure unisce tutte le linee di ciascun file in un'unica linea, mostrando in entrambi i casi il risultato sullo standard output. È un tipo di filtro.
Sintassi
La sintassi generale di paste è la seguente:
paste [-d separatori] [-s] [--] [file1 [file2 …] ]
I parametri falcoltativi file specificano i nomi dei file di testo di cui unire le linee. Se non specificati, i dati sono letti dallo standard input. Uno o più parametri possono essere dei trattini ("-") per indicare di leggere in quel punto una linea dallo standard input.
Il doppio trattino -- (facoltativo) indica che i parametri successivi non sono da considerarsi opzioni.
Il comportamento predefinito prevede di unire le linee usando il carattere di controllo tab come separatore; in caso di file che contengono un numero diverso tra loro di linee, paste si comporta come se leggesse linee vuote dai file più corti (tranne quando è in uso l'opzione -s).
Tra le opzioni principali vi sono:
- -d separatori
- Unisce le linee usando a rotazione i caratteri elencati in separatori. All'inizio di ogni nuova linea di output riprende ad usare il primo carattere separatore dell'elenco.
- -s
- Unisce tra loro tutte le linee dei primo file, poi quelle del secondo, poi quelle del terzo, e così via, producendo una sola linea per ciascun file.
Esempi
Dati tre file contenenti le linee che seguono
file1.txt:
uno due tre quattro cinque
file2.txt:
primo secondo terzo
file3.txt:
Alice Bruno Carlo Daniela
Unisce le linee corrispondenti di ciascun file, usando il carattere tab come separatore:
$ paste file1.txt file2.txt file3.txt uno primo Alice due secondo Bruno tre terzo Carlo quattro Daniela cinque
Unisce le linee corrispondenti di ciascun file, usando una barra verticale ("|") per separare le linee del primo e del secondo file, ed il carattere punto e virgola (";") per separare le linee del secondo e del terzo file:
$ paste -d "|;" file1.txt file2.txt file3.txt uno|primo;Alice due|secondo;Bruno tre|terzo;Carlo quattro|;Daniela cinque|;
Unisce le linee di ciascun file in un'unica linea, usando il carattere tab come separatore:
$ paste -s file1.txt file2.txt file3.txt uno due tre quattro cinque primo secondo terzo Alice Bruno Carlo Daniela
Unisce le linee di ciascun file in un'unica linea, usando a rotazione una barra verticale ("|") ed il carattere punto e virgola (";") per separare gli elementi:
$ paste -d "|;" -s file1.txt file2.txt file3.txt uno|due;tre|quattro;cinque primo|secondo;terzo Alice|Bruno;Carlo|Daniela
Note
- ^ (EN) paste, in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato il 14 giugno 2008.
- ^ (EN) paste: Merge lines of files, in GNU Coreutils manual. URL consultato il 14 giugno 2008.
Voci correlate
- cut (Unix)
- join (Unix)
V · D · M | ||
---|---|---|
File system | cat · cd · chattr · chmod · chown · chgrp · cksum · cmp · cp · du · df · fdisk · file · fsck · fuser · gzip · ln · ls · lsattr · lsof · mkdir · mknod · mount · mv · pwd · rm · rmdir · split · tar · touch · umount · umask | |
Processi | at · chroot · crontab · exit · kill · killall · nice · nohup · pgrep · pidof · pkill · ps · pstree · sleep · time · top · wait | |
Ambiente utente | alias · env · export · finger · id · logname · mesg · newgrp · passwd · su · sudo · uname · uptime · w · wall · who · whoami · write | |
Elaborazione testo | awk · comm · cut · diff · ed · ex · fmt · head · iconv · join · less · more · paste · sed · sort · tail · tr · uniq · vi · wc · xargs | |
Script di shell | basename · dirname · echo · expr · false · printf · test · true · unset | |
Rete | dig · nslookup · ifconfig · netstat · ping · rcp · rlogin · route · netcat · traceroute | |
Ricerche | find · grep · strings | |
Amministrazione | dmesg · groupadd · groupdel · groupmod · mdadm · shutdown · useradd · userdel · usermod | |
Altri | banner · bc · cal · clear · date · dd · lp · man · size · tee · tput · yes |