La commande paste concatène les lignes de même niveau des fichiers passés en argument. Avec l'option -s, chaque fichier est traité de manière indépendante et verra toutes ses lignes concaténées en une seule. Les éléments concaténés sont séparés par une tabulation.
Syntaxe
paste [options] [fichiers ...]
Principales options :
-s : Concaténer toutes les lignes en une seule
-d listesep : Les caractères cités dans listesep seront utilisés pour séparer les champs en sortie
Exemple
Exemple avec 2 fichiers contenant les dépenses d'un ménage pour le mois de janvier 2012 et février 2012. Les catégories sont mentionnées dans le même ordre.
$ cat janvier2012
Alimentation 50.00
Eau 25.00
Electricite 123.50
Loyer 456.90
Assurances 234.00
$ cat fevrier2012
Alimentation 67.00
Eau 34.00
Electricite 156.00
Loyer 456.90
Assurances 225.00
$
Mettre sur la même ligne les montants de chaque catégorie.
$ paste janvier2012 fevrier2012
Alimentation 50.00 Alimentation 67.00
Eau 25.00 Eau 34.00
Electricite 123.50 Electricite 156.00
Loyer 456.90 Loyer 456.90
Assurances 234.00 Assurances 225.00
$
Retirer la 3ème colonne et ajouter des en-têtes de colonnes et le total pour chaque mois.
$ paste janvier2012 fevrier2012 | awk 'BEGIN{printf("%-15s\t%7s\t%7s\n","POSTE","JANVIER","FEVRIER")}{printf("%-15s\t%7.2f\t%7.2f\n",$1,$2,$4);jan+=$2;fev+=$4}END{printf("%-15s\t%7.2f\t%7.2f\n","TOTAL",jan,fev)}'
POSTE JANVIER FEVRIER
Alimentation 50.00 67.00
Eau 25.00 34.00
Electricite 123.50 156.00
Loyer 456.90 456.90
Assurances 234.00 225.00
TOTAL 889.40 938.90
$
Concaténer toutes les lignes en une seule.
$ paste -s janvier2012 fevrier2012
Alimentation 50.00 Eau 25.00 Electricite 123.50 Loyer 456.90 Assurances 234.00
Alimentation 67.00 Eau 34.00 Electricite 156.00 Loyer 456.90 Assurances 225.00
$