5.3 Des filtres, encore des filtres...
tr [-cds] [s1 [s2]]
cut [-clist] [filename]...
cut [-flist [-dc] [-s]] [-clist] [filename]...
-
Options
-
-flist Liste des champs à garder
Exemples : -f1,3
ou -f1-3,5
- -dc Délimiteur de champs c
(défaut tabulation & espace)
Exemple : -d" "
-s
Suppression des lignes sans délimiteur
- Exemple
homel% cat passwd
duchmol:641qXHzHthhjk:7713:77:Pierre Duchmol:/home/licence/duchmol:/bin/csh
marquet:UCRtTDCmnJEJM:7333:73:Philippe Marquet:/home/enseign/marquet:/bin/csh
albert:ruFx8ojbEQgMM:7507:75:Francis Albert:/home/maitrise/albert:/bin/csh
homel% cut -d: -f1,5 < passwd
duchmol:Pierre Duchmol
marquet:Philippe Marquet
albert:Francis Albert
homel% cut -d: -f3-5 < passwd
7713:77:Pierre Duchmol
7333:73:Philippe Marquet
7507:75:Francis Albert
paste [-dlist] file1 file2
uniq [-cdu] [inputfile [outputfile]]
-
Détruit les lignes adjacentes dupliquées, ou
- Identifie ces lignes
- Options
-
-c
Compte les lignes identiques
-d
Ne garde que les lignes dupliquées et en un
exemplaire
-u
Ne garde que les lignes uniques dans inputfile
$ cat test
on se repete
on se repete
on se repete plus !
on se repete plus !
on se repete plus !
fin
$ uniq < test
on se repete
on se repete plus !
fin
$ uniq -u < test
fin
$ uniq -c < test
2 on se repete
3 on se repete plus !
1 fin
sort [-rdfn...] [-tc] [sort-field] [filename]...
homel% cat passwd
duchmol:641qXHzHthhjk:7713:77:Pierre Duchmol:/home/licence/duchmol:/bin/csh
marquet:UCRtTDCmnJEJM:7333:73:Philippe Marquet:/home/enseign/marquet:/bin/csh
albert:ruFx8ojbEQgMM:7507:75:Francis Albert:/home/maitrise/albert:/bin/csh
homel% sort -t: +2 -3 passwd
marquet:UCRtTDCmnJEJM:7333:73:Philippe Marquet:/home/enseign/marquet:/bin/csh
albert:ruFx8ojbEQgMM:7507:75:Francis Albert:/home/maitrise/albert:/bin/csh
duchmol:641qXHzHthhjk:7713:77:Pierre Duchmol:/home/licence/duchmol:/bin/csh
homel% sort -t: +4 -5 passwd
albert:ruFx8ojbEQgMM:7507:75:Francis Albert:/home/maitrise/albert:/bin/csh
marquet:UCRtTDCmnJEJM:7333:73:Philippe Marquet:/home/enseign/marquet:/bin/csh
duchmol:641qXHzHthhjk:7713:77:Pierre Duchmol:/home/licence/duchmol:/bin/csh
comm [-123] filename1 filename2
-
Sélection de lignes entre 2 fichiers (triés)
- 3 types de lignes :
-
1
- Lignes de
filename1
(Ï filename2
)
- 2
- Lignes de
filename2
(Ï filename1
)
- 3
- Lignes communes
- Paramètres : désignent les lignes à supprimer
- Exemple, les nouvelles lignes de
file
:
% comm -13 file.old file
- Exemple, les lignes supprimées de
file
:
% comm -23 file.old file
diff [-c...] filename1 filename2
-
Comparaison des deux fichiers
- Assez ``intelligent''
-c
produit un fichier exploitable par patch
homel% cat > afile
A
B
C
D
E
F
G
homel% cat > anotherfile
A
B
C
d
E
F
g
h
homel% diff afile anotherfile
4c4
< D
---
> d
7c7,8
< G
---
> g
> h
cmp [-s] filename1 filename2
join [-j[1|2]] m [-tc] [-o list] file1
file2
-
Opérateur de jointure
- Jointure sur des champs triés
- Options :
-
-tc : Séparateur de champs
- -j[1|2] m : Champs de la jointure
-j1 : Premier fichier
-j2 : Second fichier
Numérotation des champs à partir de 1
- -o list champs en sortie
Éléments de list de la forme m.n
m numéro du fichier
n numéro du champs
look [-df] [-tc] string [file]
-
Recherche des lignes égales à (commencant par)
string
- Dans un fichier trié
-
Ordre de
sort
-d
ordre du dictionnaire
-f
majuscules et minuscules indifférentes
- -tc tous les caractères à la droite de c sont ignorés
Base de données relationnelle
-
Commandes opérateurs de base de données
sort cut join grep look
- Pas forcément efficace !