Edition avec critères

Modifier les données d'un fichier Comparaison de fichiers

Les filtres UNIX

Editer un fichier par la fin:tail

Editer un fichier par le début:head

Compter les lignes d'un fichier:wc

Edition de champ d'un fichier:cut

Fusion de fichiers:paste

Extraction de lignes communes de deux fichiers: comm

Editer un fichier par la fin : tail

Si vous avez un fichier très long, et que vous voulez visualiser que la fin, vous disposez de la commande tail :

La syntaxe est la suivante, si vous tapez :

tail +10 mon-fichier

Vous obtenez toutes les lignes du fichier de la 10eme jusqu'à la fin.

tail -10 mon-fichier

Vous obtenez les 10 dernières lignes à partir de la fin.

Vous pouvez indiquer si votre unité est la ligne (par défaut), le bloc ou le caractère avec l'option -t

tail -10 -c mon-fichier

Vous obtenez les 10 derniers caractères du fichier.

Editer un fichier par le début : head

Si vous avez un fichier très long, et que vous voulez visualiser que le début, vous disposez de la commande head :

La syntaxe est la suivante, si vous tapez :

head +10 mon-fichier

Vous obtenez toutes les lignes du fichier de la 10eme jusqu'au début.

head -10 mon-fichier

Vous obtenez les 10 premières lignes à partir du début.

Vous pouvez indiquer si votre unité est la ligne (par défaut), le bloc ou le caractère avec l'option -t

head -10 -c mon-fichier

Vous obtenez les 10 premiers caractères du fichier.

Compter les lignes d'un fichier : wc

La commande wc permet de compter le nombre de ligne d'un fichier, mais aussi le nombre de mot ou de caractères.

wc -l mon-fichier

Cette commande va donner le nombre de lignes contenues dans le fichier mon-fichier. Pour avoir le nombre de mot l'option est -w, l'option -c compte le nombre de caractères.

La commande wc sans option donne à la fois le nombre de ligne, le nombre de caractères et le nombre de mots.

Si vous voulez connaître le nombre de fichier dans un répertoire, la commande sera donc :

ls -l | wc -l

Edition de champ d'un fichier : cut

La commande cut permet d'extraire certains champs d'un fichier. Les options sont les suivantes :

option    effet 
-c    extrait suivant le nombre de caractères 
-f     extrait suivant le nombre de champs 
-dx    Le caractère x est le séparateur de champ 

Avec la commande cut, contrairement à sort, le premier champ a comme numéro 1, le deuxième 2 est ainsi de suite.

Nous prendrons toujours notre fichier carnet-adresse :

maurice:29:0298334432 :Crozon
marcel:13:0466342233 :Marseille
robert:75:0144234452 :Paris
yvonne:92:013344433 :Palaiseau

La commande :

cut -c-10 carnet adresse

Va extraire les 10 premiers caractères de chaque ligne, on obtient :

maurice:29
marcel:13:
robert:75:
yvonne:92:

La commande ;

cut -c2-5 carnet adresse

Va extraire les deuxième au cinquième caractère de chaque ligne.

auri
arce
ober
vonn

La commande :

cut -c25-

Va extraire du 25eme caractère jusqu'à la fin de chaque ligne.

La commande :

cut -d: -f1,4 carnet adresse

Va extraire le premier et quatrième champ, le : fixant le séparateur de champ. On obtient :

maurice:Crozon
marcel:Marseille
robert:Paris
yvonne:Palaiseau

La commande :

cut -d : -f3- carnet adresse

Va extraire du troisième champ jusqu'au dernier champ, soit :

0298334432 :Crozon
0466342233 :Marseille
0144234452 :Paris
0133444335 :Palaiseau

Fusion de fichier :paste

La commande paste permet la fusion de lignes de fichiers. Les options sont les suivantes :

option    effet 
-dx    Le caractère x définit le séparateur de champ 
-s    Les lignes sont remplacées par des colonnes 

Soit le fichier carnet-adresse :

maurice:29:0298334432 :Crozon
marcel:13:0466342233 :Marseille
robert:75:0144234452 :Paris
yvonne:92:013344433 :Palaiseau

Et le fichier travail :

ingénieur
pâtissier
facteur
vendeuse

En tapant la commande :

paste -d : carnet-adresse travail

Vous obtenez :

maurice:29:0298334432 :Crozon :ingénieur
marcel:13:0466342233 :Marseille:pâtissier
robert:75:0144234452:Paris:facteur
yvonne:92:013344433 :Palaiseau:vendeuse

Vous pouvez évidemment rediriger le résultat vers un fichier.

Extraction de lignes communes de deux fichiers : comm

Cette commande permet d'extraire les lignes communes à deux fichiers, soit le fichier carnet-adresse :

maurice:29:0298334432:Crozon
marcel:13:0466342233:Marseille
robert:75:0144234452:Paris
yvonne:92:013344433:Palaiseau

Et carnet-adresse2

olivier:29:0298333242:Brest
marcel:13:0466342233:Marseille
myriam:30:0434214452:Nimes
yvonne:92:013344433:Palaiseau

La commande :

comm carnet-adresse carnet-adresse2

Nous donnera :

marcel:13:0466342233:Marseille
yvonne:92:013344433:Palaiseau

Retour haut de la page