Si l'on dispose d'un fichier fic qui ressemble à
ceci :
AAAA
AAAA
BBBB
CCCC
CCCC
DDDD
la commande uniq fic renverra
AAAA
BBBB
CCCC
DDDD
Les lignes identiques doivent être adjacentes pour être
supprimées.
L'option -u permet de n'afficher que les lignes présentes à
l'origine en un seul exemplaire.
L'option -d permet de n'afficher que les lignes présentes initialement
en plusieurs exemplaires.
Les options -f (resp. -s) permettent d'ignorer un certain nombre de
champs (resp. de caractères) en début de chaque ligne avant
d'entamer le processus de comparaison.
tr [a-z] [n-za-m] < in > out
Pour convertir les majuscules en minuscules :
tr "[A-Z]" "[a-z]" < in > out
L'option -d permet de supprimer la liste de caractères
specifiée.
Par exemple, pour supprimer dans le répertoire courant les fichiers core ou ceux appartenant à l'utilisateur dilbert :
find . \( -name core -o -user dilbert \) -exec rm{}\;
Les parenthèses permettent de construire un critère "composé",
l'option -o étant utilisée pour OR, le ! pour la négation,
alors qu'une simple juxtaposition permet de traduire le AND.
D'autres exemples :
find . -mtime +3 # trouve les fichiers modifiés
il y a plus de 3 jours
find . -newer fic
# trouve les fichiers modifiés plus récemment que fic
sort +5 fic
car les champs sont numérotés a partir de 0. Si l'on veut trier ce même fichier sur la base du huitième caractère du quatrième champ, la commande sera :
sort +3.7 fic
car les caractères à l'intérieur d'un champ sont
également numérotés à partir de 0.
L'entrée standard est passée en argument de paste par
l'option tiret (-). Supposons que le répertoire courant ne contienne
que trois fichiers fic1, fic2 et fic3. La commande
ls
fic? | paste - fic1 génèrera la sortie suivante :
fic1 1
fic2 2
fic3 3
Brésil 0
France 3
et fic2 un fichier qui contient
Brésil 1994
France 1998
La commande join -j1 1 fic1 fic2 genèrera
Brésil 0 1994
France 3 1998
L'option -j1 n permet de spécifier que c'est le n-ième
champ de chacun des fichiers qui définit la relation.