commande Coller

Objectif

Joins les lignes de différents fichiers.

Syntaxe

paste [ -s ] [ -d Liste ] File1 ...

Descriptif

La commande paste lit les entrées des fichiers spécifiés sur la ligne de commande. La commande est lue à partir d'une entrée standard si un - (signe moins) apparaît en tant que nom de fichier. La commande concatène les lignes correspondantes des fichiers d'entrée donnés et écrit les lignes résultant à la sortie standard.

Par défaut, la commande paste traite chaque fichier comme une colonne et les joint horizontalement avec un caractère de tabulation (fusion parallèle). Vous pouvez considérer la commande paste comme l'équivalent de la commande cat (qui concatène les fichiers verticalement, c'est-à-dire un fichier après un autre).

Avec l'indicateur -s , la commande paste combine les lignes suivantes du même fichier d'entrée (fusion en série). Par défaut, ces lignes sont jointes au caractère de tabulation.

Remarques :
  1. La commande paste prend en charge jusqu'à 32767 fichiers d'entrée (la constante OPEN_MAX ).
  2. L'action de la commande pr -t -m est similaire à celle de la commande paste , mais elle crée des espaces, des tabulations et des lignes supplémentaires pour une mise en page agréable.
  3. Les fichiers d'entrée doivent être des fichiers texte, mais peuvent contenir un nombre illimité de longueurs de ligne.

Indicateurs

Tableau 1. Indicateurs
Article Descriptif
-d Liste Modificateur le délimiteur qui sépare les lignes correspondantes dans la sortie avec un ou plusieurs caractères spécifiés dans le paramètre Liste (la valeur par défaut est un onglet). Si plusieurs caractères sont dans le paramètre Liste , ils sont répétés dans l'ordre jusqu'à la fin de la sortie. Lors de la fusion parallèle, les lignes du dernier fichier se terminent toujours par un caractère de nouvelle ligne au lieu d'un à partir du paramètre Liste .

Les caractères spéciaux suivants peuvent également être utilisés dans le paramètre Liste :

\n
Caractère de nouvelle ligne
\t
Onglet
\\
Barre oblique inversée
\0
Chaîne vide (caractères non nuls)
c
Un caractère étendu

Vous devez placer des guillemets autour des caractères qui ont une signification particulière pour l'interpréteur de commandes.

-s Fusionne les lignes suivantes du premier fichier horizontalement. Avec cet indicateur, la commande paste parcourt un fichier entier avant de démarrer sur le fichier suivant. Lorsqu'il termine la fusion des lignes dans un fichier, il force une nouvelle ligne, puis fusionne les lignes dans le fichier d'entrée suivant, se poursuivant de la même façon à travers les fichiers d'entrée restants, un à la fois. Une tabulation sépare les lignes sauf si vous utilisez l'indicateur -d . Quel que soit le paramètre Liste , le dernier caractère du fichier est forcé d'être un caractère de nouvelle ligne.

Statut de sortie

Cette commande renvoie les valeurs de sortie suivantes :

Tableau 2. état de sortie
Article Descriptif
0 % L'opération a abouti.
>0 Une erreur s'est produite.

Exemples

  1. Pour coller plusieurs colonnes de données ensemble, entrez:
    paste names places dates > npd
    Cela crée un fichier nommé npd qui contient les données du fichier names dans une colonne, du fichier places dans une autre, et du fichier dates dans une troisième. Si le fichier names, placeset dates se présente comme suit:
    names           places          dates
    rachel          New York        February 5
    jerry           Austin          March 13
    mark            Chicago         June 21
    marsha          Boca Raton      July 16
    scott           Seattle         November 4
    le fichier npd contient:
    rachel          New York        February 5
    jerry           Austin          March 13
    mark            Chicago         June 21
    marsha          Boca Raton      July 16
    scott           Seattle         November 4
    Un caractère de tabulation sépare le nom, le lieu et la date de chaque ligne. Ces colonnes ne s'alignont pas toujours car les tabulations sont définies à chaque huitième colonne.
  2. Pour séparer les colonnes d'un caractère autre qu'un onglet, entrez:
    paste  -d"!@" names places dates > npd
    Cette alternative ! Et @ comme séparateurs de colonne. Si les fichiers names, placeset dates sont identiques à ceux de l'exemple 1, le fichier npd contient:
    rachel!New York@February 5
    jerry!Austin@March 13
    mark!Chicago@June 21
    marsha!Boca Raton@July 16
    scott!Seattle@November 4
  3. Pour afficher l'entrée standard dans plusieurs colonnes, entrez:
    ls | paste - - - -
    Cette liste répertorie le répertoire en cours dans quatre colonnes. Chaque - (moins) indique à la commande paste de créer une colonne contenant les données lues à partir de l'entrée standard. La première ligne est placée dans la première colonne, la deuxième ligne dans la deuxième colonne, etc.

    Cela équivaut à:

    ls | paste  -d"\t\t\t\n" -s -
    Cet exemple remplit les colonnes de la page avec les lignes suivantes de l'entrée standard. Le -d"\t\t\t\n" définit le caractère à insérer après chaque colonne: un caractère de tabulation (\t) après les trois premières colonnes et un caractère de nouvelle ligne (\n) après la quatrième. Sans l'indicateur -d , la commande paste -s - affiche toutes les entrées sous la forme d'une ligne avec un caractère de tabulation entre chaque colonne.

Fichiers

Tableau 3. fichiers
Article Descriptif
/usr/bin/paste Contient la commande paste .