-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathpaste_join.txt
80 lines (69 loc) · 4.64 KB
/
paste_join.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
┏━━━━━━━━━━━━━━━━┓
┃ PASTE_JOIN ┃
┗━━━━━━━━━━━━━━━━┛
paste [FILE]... #Pour chaque ligne numéro N, imprime la ligne numéro N
#de tous les [FILE]... sans newline, mais séparés par
#OFS (par défaut tabulation), puis imprime une newline
#et passe à la ligne N+1
#En gros, cela colle toutes les lignes numéro N de
#[FILE]... ensemble
#Si un [FILE]... n'a pas de ligne numéro N contrairement
#à ses collègues, il n'imprime rien, mais la tabulation
#le séparant de ses voisins est bien là
#[FILE]... par défaut est stdin : on peut donc rediriger
#son input
-s #Complètement différent : pour chaque [FILE]...,
--serial #imprime chacune de ses lignes à la suite, séparées par
#OFS, puis un newline
-d "CARACTERE..." #Utilise CARACTERE pour OFS. S'il y en a plusieurs à la
--delimiters="CARAC..." #suite, le premier sera le premier OFS, le second le
#second OFS, etc. et le dernier sera utilisé pour tous
#ceux restants.
#Séquences d'échappements backslash possible (voir doc).
#Cependant \a, \c, \e, \xNN et \NNN (sauf \0) ne
#marchent pas. \\ doit être noté \\\\
join FILE1 FILE2 #Agit comme paste, sauf que :
# - ne prend pas les mêmes options
# - le premier field de chaque ligne doit être le même
# pour les deux FILE (sinon produit une erreur de
# manière aléatoire). Il ne sera pas imprimé pour
# FILE2 : les premiers fields sont donc "joints"
# - seuls deux FILE sont possibles
# - l'OFS par défaut est espace
# - si l'un des deux FILE est plus long, les lignes
# supplémentaires sont ignorées
#Les fields sont délimités par FS (par défaut
#whitespace). Les leading blanks sont ignorés
#FILE1 ou 2 peut être - pour lire l'entrée standard, qui
#peut donc être redirigée
-1 NOMBRE #La jonction de FILE1 à lieu par rapport à son field
#numéro NOMBRE au lieu de son premier field. Le field
#joint sera imprimé en début de ligne
-2 NOMBRE #La jonction de FILE2 à lieu par rapport à son field
#numéro NOMBRE au lieu de son premier field
-j NOMBRE #Equivaut à -1 NOMBRE -2 NOMBRE
-i
--ignore-case #La jonction ignore la casse
-t CARACTERE #Utilise CARACTERE comme FS et OFS au lieu d'espace.
#Utiliser la notation $'SEQUENCE' pour utiliser une
#séquence d'échappement backslash (voir doc)
-a NOMBRE #Si la jonction ne peut pas avoir lieu, plutôt que de
#produire une erreur, affiche la ligne courante de FILE
#numéro NOMBRE (1 ou 2)
-v NOMBRE #Même chose mais n'imprime pas les lignes jointes.
#Imprime donc les lignes de FILE numéro NOMBRE seulement
#lorsque la jonction est impossible
-o "FILDNM[,FILDNM]..." #Plutôt que d'afficher d'abord le field joint, puis les
-o "FILDNM[ FILDNM]..." #fields de FILE1 puis FILE2, imprime seulement les
#fields désignés par FILDNM... et dans l'ordre spécifié.
#Si le field désigné est out of range, imprime rien puis
#OFS
#FIELDS_SPEC peut être :
# - 0 désigne le field joint
# - FILENUM.FIELDNUM désigne le field numéro FIELDNUM
# du file numéro FILENUM (1 ou 2)
-e STRING #Avec -o, si le field est out of range, imprime STRING
#plutôt que rien, puis OFS
--check-order #Produit une erreur si les [FILE]... ne sont pas triés
#alphabétiquement et numériquement
--nocheck-order #Ne produit pas cette erreur (défaut)