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.
Text-Fu · Leçon 7
paste
Apprenez à fusionner des lignes correspondantes ou à sérialiser des lignes avec des délimiteurs configurables.
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 - ?
Pour vous exercer :
- Traitement de texte simple - Manipulez du texte avec
tr,col,joinetpaste.
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