paste
100%

Text-Fu · Leçon 7

paste

Apprenez à fusionner des lignes correspondantes ou à sérialiser des lignes avec des délimiteurs configurables.

paste combine des lignes en colonnes. Par défaut, il prend une ligne de chaque fichier, les joint par une tabulation et recommence jusqu'à la fin de toutes les entrées.

Fusionner des fichiers côte à côte

$ printf 'alice\nbob\n' > names.txt
$ printf 'admin\nviewer\n' > roles.txt

Fournissez ensuite les deux fichiers à paste :

$ paste names.txt roles.txt
alice	admin
bob	viewer

L'espacement est une tabulation. Contrairement à cat, qui écrit des fichiers complets à la suite, paste combine leurs lignes correspondantes.

first.txt contient A puis B, et second.txt contient 1 puis 2. Que produit paste first.txt second.txt par défaut ?

Choisir un délimiteur

-d LIST remplace la tabulation :

$ paste -d ':' names.txt roles.txt
alice:admin
bob:viewer

Citez les délimiteurs ayant un sens pour le shell. paste peut parcourir plusieurs caractères, mais un seul suffit souvent à deux colonnes.

Quelle commande joint les lignes correspondantes de names.txt et roles.txt avec un deux-points ?

Sérialiser les lignes d'un fichier

-s joint les lignes de chaque fichier en une seule ligne :

$ printf 'The\nquick\nbrown\nfox\n' > words.txt
$ paste -s words.txt
The	quick	brown	fox

Combinez -s et -d pour choisir le séparateur :

$ paste -s -d ' ' words.txt
The quick brown fox

Avec plusieurs fichiers, chacun devient sa propre ligne de sortie.

Quelle commande joint toutes les lignes de words.txt en une ligne séparée par des espaces ?

Gérer des entrées de longueurs différentes

paste continue jusqu'à la fin du fichier le plus long ; les valeurs absentes deviennent des champs vides :

$ printf 'A\nB\nC\n' > letters.txt
$ printf '1\n2\n' > numbers.txt
$ paste -d ':' letters.txt numbers.txt
A:1
B:2
C:

Que se passe-t-il lorsqu'un fichier se termine avant un autre en mode parallèle ?

Lire une entrée depuis stdin

Utilisez - comme opérande :

$ printf 'admin\nviewer\n' | paste -d ':' names.txt -
alice:admin
bob:viewer

Dans producer | paste names.txt -, que signifie l'opérande - ?

Leçon terminée

Vous avez terminé paste

Vous savez désormais combiner des entrées ligne par ligne avec un alignement prévisible.

  • Fusionner les lignes correspondantes de plusieurs fichiers.

  • Remplacer la tabulation avec -d.

  • Sérialiser les lignes d'un fichier avec -s.

  • Interpréter les champs vides des entrées plus courtes.

  • Utiliser - pour une entrée provenant de stdin.

Conservez votre progression

Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.

Créer un compte gratuit
Leçon Suivante
Retour à Text-Fu