Vous êtes sur la page 1sur 84

grep

sed
awk

Administration Linux
Les commandes complexes: grep, awk and sed

Victor OYETOLA

Université d’Abomey-Calavi

Juillet 2022

Victor OYETOLA Administration Linux 1 / 27


grep
sed
awk

1 grep
Présentation de grep
Expressions régulières
Les options de grep
Utilisation de grep
2 sed
Présentation de sed
Commandes usuelles de sed
utilisation de sed
3 awk
Présentation de awk
awk par l’exemple
Les fonctions dans awk

Victor OYETOLA Administration Linux 2 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

Présentation de grep
grep provient de l’anglais (global regular expression and print)
les commandes grep, vi, awk, expr et sed utilisent:
les Expressions Régulières Basiques (ERb)
les Expressions Régulières Etendues (ERe)
grep permet de rechercher dans un fichier les lignes contenant un
mot, série de mots, une ERb ou une ERe (avec l’option -E )donnés
en argument et de les afficher
l’option -E est aussi intégré dans la version étendue de grep : (egrep)

Victor OYETOLA Administration Linux 3 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

Quelques expressions régulières


^ début de ligne (ex: grep -E -w ^[A-Z][a-z]{2} Films.txt)

Victor OYETOLA Administration Linux 4 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

Quelques expressions régulières


^ début de ligne (ex: grep -E -w ^[A-Z][a-z]{2} Films.txt)
$ fin de ligne (ex: grep onne$ fichier)

Victor OYETOLA Administration Linux 4 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

Quelques expressions régulières


^ début de ligne (ex: grep -E -w ^[A-Z][a-z]{2} Films.txt)
$ fin de ligne (ex: grep onne$ fichier)
^$ une ligne vide (ex: grep -v ^$ fichierAvecLigneVide)

Victor OYETOLA Administration Linux 4 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

Quelques expressions régulières


^ début de ligne (ex: grep -E -w ^[A-Z][a-z]{2} Films.txt)
$ fin de ligne (ex: grep onne$ fichier)
^$ une ligne vide (ex: grep -v ^$ fichierAvecLigneVide)
• un seul caractère (ex: grep -w ... films.txt)

Victor OYETOLA Administration Linux 4 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

Quelques expressions régulières


^ début de ligne (ex: grep -E -w ^[A-Z][a-z]{2} Films.txt)
$ fin de ligne (ex: grep onne$ fichier)
^$ une ligne vide (ex: grep -v ^$ fichierAvecLigneVide)
• un seul caractère (ex: grep -w ... films.txt)
* zéro ou plusieurs occurence du caractère précédent

Victor OYETOLA Administration Linux 4 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

Quelques expressions régulières


^ début de ligne (ex: grep -E -w ^[A-Z][a-z]{2} Films.txt)
$ fin de ligne (ex: grep onne$ fichier)
^$ une ligne vide (ex: grep -v ^$ fichierAvecLigneVide)
• un seul caractère (ex: grep -w ... films.txt)
* zéro ou plusieurs occurence du caractère précédent
? zéro ou une occurence du caractère précédent

Victor OYETOLA Administration Linux 4 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

Quelques expressions régulières


^ début de ligne (ex: grep -E -w ^[A-Z][a-z]{2} Films.txt)
$ fin de ligne (ex: grep onne$ fichier)
^$ une ligne vide (ex: grep -v ^$ fichierAvecLigneVide)
• un seul caractère (ex: grep -w ... films.txt)
* zéro ou plusieurs occurence du caractère précédent
? zéro ou une occurence du caractère précédent
+ une ou plusieurs occurences du caractère précédent

Victor OYETOLA Administration Linux 4 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

Quelques expressions régulières


^ début de ligne (ex: grep -E -w ^[A-Z][a-z]{2} Films.txt)
$ fin de ligne (ex: grep onne$ fichier)
^$ une ligne vide (ex: grep -v ^$ fichierAvecLigneVide)
• un seul caractère (ex: grep -w ... films.txt)
* zéro ou plusieurs occurence du caractère précédent
? zéro ou une occurence du caractère précédent
+ une ou plusieurs occurences du caractère précédent
[a-z] représente une lettre miniscule

Victor OYETOLA Administration Linux 4 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

Quelques expressions régulières


^ début de ligne (ex: grep -E -w ^[A-Z][a-z]{2} Films.txt)
$ fin de ligne (ex: grep onne$ fichier)
^$ une ligne vide (ex: grep -v ^$ fichierAvecLigneVide)
• un seul caractère (ex: grep -w ... films.txt)
* zéro ou plusieurs occurence du caractère précédent
? zéro ou une occurence du caractère précédent
+ une ou plusieurs occurences du caractère précédent
[a-z] représente une lettre miniscule
[0-9] représente un chiffre

Victor OYETOLA Administration Linux 4 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

Quelques expressions régulières


^ début de ligne (ex: grep -E -w ^[A-Z][a-z]{2} Films.txt)
$ fin de ligne (ex: grep onne$ fichier)
^$ une ligne vide (ex: grep -v ^$ fichierAvecLigneVide)
• un seul caractère (ex: grep -w ... films.txt)
* zéro ou plusieurs occurence du caractère précédent
? zéro ou une occurence du caractère précédent
+ une ou plusieurs occurences du caractère précédent
[a-z] représente une lettre miniscule
[0-9] représente un chiffre
[a-zA-Z0-9] représente un chiffre ou une lettre

Victor OYETOLA Administration Linux 4 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

Quelques expressions régulières


^ début de ligne (ex: grep -E -w ^[A-Z][a-z]{2} Films.txt)
$ fin de ligne (ex: grep onne$ fichier)
^$ une ligne vide (ex: grep -v ^$ fichierAvecLigneVide)
• un seul caractère (ex: grep -w ... films.txt)
* zéro ou plusieurs occurence du caractère précédent
? zéro ou une occurence du caractère précédent
+ une ou plusieurs occurences du caractère précédent
[a-z] représente une lettre miniscule
[0-9] représente un chiffre
[a-zA-Z0-9] représente un chiffre ou une lettre
[!a-zA-Z0-9] représente tout caractère non alpha numérique

Victor OYETOLA Administration Linux 4 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

les principales options de grep


-c affiche le nombre de lignes trouvées
-e permet de spécifier plusieurs expressions régulières
-E permet d’utiliser les ERe
-f permet de lire les expressions régulières à partir d’un fichier
-F permet de ne pas interpréter le motif de recherche comme une
expression régulière
-i permet une recherche insensible à la casse

Victor OYETOLA Administration Linux 5 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

les principales options de grep


-l permet d’afficher seulement les noms des fichiers contenant
l’expression régulière recherchée
-n permet de numéroter les lignes trouvées
-q permet d’effectuer une recherche sans afficher le résultat à
l’écran
-v permet une recherche ne contenant pas l’expression régulière
-w l’expression recherchée doit correspondre à un mot entier
-x l’expression recherchée doit correspondre à une ligne entière

Victor OYETOLA Administration Linux 6 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

grep en action
1 grep -E -i paris\|vosges dep.txt (expression régulière et casse ignoré)

Victor OYETOLA Administration Linux 7 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

grep en action
1 grep -E -i paris\|vosges dep.txt (expression régulière et casse ignoré)
2 grep -e ’^0’ -e ’s$’ dep.txt (Afficher les lignes commençant par un 0 ou se
terminant par un s)

Victor OYETOLA Administration Linux 7 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

grep en action
1 grep -E -i paris\|vosges dep.txt (expression régulière et casse ignoré)
2 grep -e ’^0’ -e ’s$’ dep.txt (Afficher les lignes commençant par un 0 ou se
terminant par un s)
3 grep -v ’^9’ file (afficher les lignes ne commençant pas par 9)

Victor OYETOLA Administration Linux 7 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

grep en action
1 grep -E -i paris\|vosges dep.txt (expression régulière et casse ignoré)
2 grep -e ’^0’ -e ’s$’ dep.txt (Afficher les lignes commençant par un 0 ou se
terminant par un s)
3 grep -v ’^9’ file (afficher les lignes ne commençant pas par 9)
4 grep -n ’^11’ file (afficher et numeroter les lignes commençant par 11)

Victor OYETOLA Administration Linux 7 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

grep en action
1 grep -E -i paris\|vosges dep.txt (expression régulière et casse ignoré)
2 grep -e ’^0’ -e ’s$’ dep.txt (Afficher les lignes commençant par un 0 ou se
terminant par un s)
3 grep -v ’^9’ file (afficher les lignes ne commençant pas par 9)
4 grep -n ’^11’ file (afficher et numeroter les lignes commençant par 11)
5 grep -c -e ’^0’ -e ’s$’ file (afficher seulement le nombre de ligne trouver)

Victor OYETOLA Administration Linux 7 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

grep en action
1 grep -E -i paris\|vosges dep.txt (expression régulière et casse ignoré)
2 grep -e ’^0’ -e ’s$’ dep.txt (Afficher les lignes commençant par un 0 ou se
terminant par un s)
3 grep -v ’^9’ file (afficher les lignes ne commençant pas par 9)
4 grep -n ’^11’ file (afficher et numeroter les lignes commençant par 11)
5 grep -c -e ’^0’ -e ’s$’ file (afficher seulement le nombre de ligne trouver)
6 grep -w COTE file (affiche les lignes contenant le mot COTE et non COTES)

Victor OYETOLA Administration Linux 7 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

grep en action
1 grep -E -i paris\|vosges dep.txt (expression régulière et casse ignoré)
2 grep -e ’^0’ -e ’s$’ dep.txt (Afficher les lignes commençant par un 0 ou se
terminant par un s)
3 grep -v ’^9’ file (afficher les lignes ne commençant pas par 9)
4 grep -n ’^11’ file (afficher et numeroter les lignes commençant par 11)
5 grep -c -e ’^0’ -e ’s$’ file (afficher seulement le nombre de ligne trouver)
6 grep -w COTE file (affiche les lignes contenant le mot COTE et non COTES)
7 grep ’..’ file (afficher les lignes contenant au moins 2 caractères)

Victor OYETOLA Administration Linux 7 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

grep en action
1 grep -E -i paris\|vosges dep.txt (expression régulière et casse ignoré)
2 grep -e ’^0’ -e ’s$’ dep.txt (Afficher les lignes commençant par un 0 ou se
terminant par un s)
3 grep -v ’^9’ file (afficher les lignes ne commençant pas par 9)
4 grep -n ’^11’ file (afficher et numeroter les lignes commençant par 11)
5 grep -c -e ’^0’ -e ’s$’ file (afficher seulement le nombre de ligne trouver)
6 grep -w COTE file (affiche les lignes contenant le mot COTE et non COTES)
7 grep ’..’ file (afficher les lignes contenant au moins 2 caractères)
8 grep -f filegrep.txt dep.txt (les motifs à rechercher sont dans le fichier filegrep)

Victor OYETOLA Administration Linux 7 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

grep en action
1 grep -E -i paris\|vosges dep.txt (expression régulière et casse ignoré)
2 grep -e ’^0’ -e ’s$’ dep.txt (Afficher les lignes commençant par un 0 ou se
terminant par un s)
3 grep -v ’^9’ file (afficher les lignes ne commençant pas par 9)
4 grep -n ’^11’ file (afficher et numeroter les lignes commençant par 11)
5 grep -c -e ’^0’ -e ’s$’ file (afficher seulement le nombre de ligne trouver)
6 grep -w COTE file (affiche les lignes contenant le mot COTE et non COTES)
7 grep ’..’ file (afficher les lignes contenant au moins 2 caractères)
8 grep -f filegrep.txt dep.txt (les motifs à rechercher sont dans le fichier filegrep)
9 egrep -x ’[0-9]+’ file (Avec -x le critère est une ligne entière: ici les lignes contenant
des chiffres)

Victor OYETOLA Administration Linux 7 / 27


Présentation de grep
grep
Expressions régulières
sed
Les options de grep
awk
Utilisation de grep

grep en action
1 grep -E -i paris\|vosges dep.txt (expression régulière et casse ignoré)
2 grep -e ’^0’ -e ’s$’ dep.txt (Afficher les lignes commençant par un 0 ou se
terminant par un s)
3 grep -v ’^9’ file (afficher les lignes ne commençant pas par 9)
4 grep -n ’^11’ file (afficher et numeroter les lignes commençant par 11)
5 grep -c -e ’^0’ -e ’s$’ file (afficher seulement le nombre de ligne trouver)
6 grep -w COTE file (affiche les lignes contenant le mot COTE et non COTES)
7 grep ’..’ file (afficher les lignes contenant au moins 2 caractères)
8 grep -f filegrep.txt dep.txt (les motifs à rechercher sont dans le fichier filegrep)
9 egrep -x ’[0-9]+’ file (Avec -x le critère est une ligne entière: ici les lignes contenant
des chiffres)
10 egrep ’^[0-9]+$’ file ( Même résultat que la ligne précédente mais sans l’option -x)
Victor OYETOLA Administration Linux 7 / 27
grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

Présentation de sed
sed provient du terme anglais Stream EDitor. C’est un outil
généralement utilisé pour effectuer des modifications dans un fichier
de données de type texte (comme remplacer un mot ou une
expression par une autre, ...).

Victor OYETOLA Administration Linux 8 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

utilisation et syntaxe
sed -e ’liste_d_instructions’ fichier_à_traiter
sed -f fichier_script fichier_à_traiter
avec l’option -e , utiliser les apostrophes simples ou double,
permet aussi d’utiliser aussi plusieurs commandes à la fois
sed -e ’commande1’ -e ’commande2’ .....

Victor OYETOLA Administration Linux 9 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

utilisation et syntaxe
sed -e ’liste_d_instructions’ fichier_à_traiter
sed -f fichier_script fichier_à_traiter
avec l’option -e , utiliser les apostrophes simples ou double,
permet aussi d’utiliser aussi plusieurs commandes à la fois
sed -e ’commande1’ -e ’commande2’ .....
avec -n , sed fonctionne en mode silencieux et n’affiche que les
lignes explicitement demandées (ex: sed -n ’/3[0-9]\{4\}/p’ dep2012.txt)

Victor OYETOLA Administration Linux 9 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

utilisation et syntaxe
sed -e ’liste_d_instructions’ fichier_à_traiter
sed -f fichier_script fichier_à_traiter
avec l’option -e , utiliser les apostrophes simples ou double,
permet aussi d’utiliser aussi plusieurs commandes à la fois
sed -e ’commande1’ -e ’commande2’ .....
avec -n , sed fonctionne en mode silencieux et n’affiche que les
lignes explicitement demandées (ex: sed -n ’/3[0-9]\{4\}/p’ dep2012.txt)
avec -i sed modifiera directement le fichier fournit en paramètre

Victor OYETOLA Administration Linux 9 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

utilisation et syntaxe
sed -e ’liste_d_instructions’ fichier_à_traiter
sed -f fichier_script fichier_à_traiter
avec l’option -e , utiliser les apostrophes simples ou double,
permet aussi d’utiliser aussi plusieurs commandes à la fois
sed -e ’commande1’ -e ’commande2’ .....
avec -n , sed fonctionne en mode silencieux et n’affiche que les
lignes explicitement demandées (ex: sed -n ’/3[0-9]\{4\}/p’ dep2012.txt)
avec -i sed modifiera directement le fichier fournit en paramètre
avec -r sed utilise les expressions régulières standards
(ex: sed -n -r ’/3[0-9]{4}/p’ dep2012.txt)

Victor OYETOLA Administration Linux 9 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

utilisation et syntaxe
sed -e ’liste_d_instructions’ fichier_à_traiter
sed -f fichier_script fichier_à_traiter
avec l’option -e , utiliser les apostrophes simples ou double,
permet aussi d’utiliser aussi plusieurs commandes à la fois
sed -e ’commande1’ -e ’commande2’ .....
avec -n , sed fonctionne en mode silencieux et n’affiche que les
lignes explicitement demandées (ex: sed -n ’/3[0-9]\{4\}/p’ dep2012.txt)
avec -i sed modifiera directement le fichier fournit en paramètre
avec -r sed utilise les expressions régulières standards
(ex: sed -n -r ’/3[0-9]{4}/p’ dep2012.txt)

Les commandes que sed accepte sont représentées par une


lettre unique ( a , b , c , d , g , h , i , n , p , q , r , s , t ,w, y )

Victor OYETOLA Administration Linux 9 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

En pratique quelques commandes sont régulièrement utilisées


1 a: append ex: sed ’1a– – – – –’ File ou sed ’/pattern/a– – – ’ File

Victor OYETOLA Administration Linux 10 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

En pratique quelques commandes sont régulièrement utilisées


1 a: append ex: sed ’1a– – – – –’ File ou sed ’/pattern/a– – – ’ File
2 c: change ex: sed ’/Windows/c Linux’ file

Victor OYETOLA Administration Linux 10 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

En pratique quelques commandes sont régulièrement utilisées


1 a: append ex: sed ’1a– – – – –’ File ou sed ’/pattern/a– – – ’ File
2 c: change ex: sed ’/Windows/c Linux’ file
3 d: delete ex: sed ’1,10d’ file ou sed ’/pattern/d’ file

Victor OYETOLA Administration Linux 10 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

En pratique quelques commandes sont régulièrement utilisées


1 a: append ex: sed ’1a– – – – –’ File ou sed ’/pattern/a– – – ’ File
2 c: change ex: sed ’/Windows/c Linux’ file
3 d: delete ex: sed ’1,10d’ file ou sed ’/pattern/d’ file
4 g: globally ex: sed ’s/Windows/Linux/g’ file

Victor OYETOLA Administration Linux 10 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

En pratique quelques commandes sont régulièrement utilisées


1 a: append ex: sed ’1a– – – – –’ File ou sed ’/pattern/a– – – ’ File
2 c: change ex: sed ’/Windows/c Linux’ file
3 d: delete ex: sed ’1,10d’ file ou sed ’/pattern/d’ file
4 g: globally ex: sed ’s/Windows/Linux/g’ file
5 i: insert ex: sed ’1iNom, Prenoms, dateNais, lieuNais’ File

Victor OYETOLA Administration Linux 10 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

En pratique quelques commandes sont régulièrement utilisées


1 a: append ex: sed ’1a– – – – –’ File ou sed ’/pattern/a– – – ’ File
2 c: change ex: sed ’/Windows/c Linux’ file
3 d: delete ex: sed ’1,10d’ file ou sed ’/pattern/d’ file
4 g: globally ex: sed ’s/Windows/Linux/g’ file
5 i: insert ex: sed ’1iNom, Prenoms, dateNais, lieuNais’ File
6 p: print ex: sed ’/Finance/p’ file

Victor OYETOLA Administration Linux 10 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

En pratique quelques commandes sont régulièrement utilisées


1 a: append ex: sed ’1a– – – – –’ File ou sed ’/pattern/a– – – ’ File
2 c: change ex: sed ’/Windows/c Linux’ file
3 d: delete ex: sed ’1,10d’ file ou sed ’/pattern/d’ file
4 g: globally ex: sed ’s/Windows/Linux/g’ file
5 i: insert ex: sed ’1iNom, Prenoms, dateNais, lieuNais’ File
6 p: print ex: sed ’/Finance/p’ file
7 q: quit ex: sed ’2q’ file

Victor OYETOLA Administration Linux 10 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

En pratique quelques commandes sont régulièrement utilisées


1 a: append ex: sed ’1a– – – – –’ File ou sed ’/pattern/a– – – ’ File
2 c: change ex: sed ’/Windows/c Linux’ file
3 d: delete ex: sed ’1,10d’ file ou sed ’/pattern/d’ file
4 g: globally ex: sed ’s/Windows/Linux/g’ file
5 i: insert ex: sed ’1iNom, Prenoms, dateNais, lieuNais’ File
6 p: print ex: sed ’/Finance/p’ file
7 q: quit ex: sed ’2q’ file
8 r: read ex: sed ’r file2’ file ou sed ’R file2’ file

Victor OYETOLA Administration Linux 10 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

En pratique quelques commandes sont régulièrement utilisées


1 a: append ex: sed ’1a– – – – –’ File ou sed ’/pattern/a– – – ’ File
2 c: change ex: sed ’/Windows/c Linux’ file
3 d: delete ex: sed ’1,10d’ file ou sed ’/pattern/d’ file
4 g: globally ex: sed ’s/Windows/Linux/g’ file
5 i: insert ex: sed ’1iNom, Prenoms, dateNais, lieuNais’ File
6 p: print ex: sed ’/Finance/p’ file
7 q: quit ex: sed ’2q’ file
8 r: read ex: sed ’r file2’ file ou sed ’R file2’ file
9 s: substitute ex: sed ’s/Windows/Linux/g’ file

Victor OYETOLA Administration Linux 10 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

En pratique quelques commandes sont régulièrement utilisées


1 a: append ex: sed ’1a– – – – –’ File ou sed ’/pattern/a– – – ’ File
2 c: change ex: sed ’/Windows/c Linux’ file
3 d: delete ex: sed ’1,10d’ file ou sed ’/pattern/d’ file
4 g: globally ex: sed ’s/Windows/Linux/g’ file
5 i: insert ex: sed ’1iNom, Prenoms, dateNais, lieuNais’ File
6 p: print ex: sed ’/Finance/p’ file
7 q: quit ex: sed ’2q’ file
8 r: read ex: sed ’r file2’ file ou sed ’R file2’ file
9 s: substitute ex: sed ’s/Windows/Linux/g’ file
10 w: write ex: sed -e ’1w fiche’ -e ’$w fiche’ file

Victor OYETOLA Administration Linux 10 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

En pratique quelques commandes sont régulièrement utilisées


1 a: append ex: sed ’1a– – – – –’ File ou sed ’/pattern/a– – – ’ File
2 c: change ex: sed ’/Windows/c Linux’ file
3 d: delete ex: sed ’1,10d’ file ou sed ’/pattern/d’ file
4 g: globally ex: sed ’s/Windows/Linux/g’ file
5 i: insert ex: sed ’1iNom, Prenoms, dateNais, lieuNais’ File
6 p: print ex: sed ’/Finance/p’ file
7 q: quit ex: sed ’2q’ file
8 r: read ex: sed ’r file2’ file ou sed ’R file2’ file
9 s: substitute ex: sed ’s/Windows/Linux/g’ file
10 w: write ex: sed -e ’1w fiche’ -e ’$w fiche’ file
11 y: transform ex: sed ’y/ABCDE/12345/’ file

Victor OYETOLA Administration Linux 10 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
sed -i ’/Finance/i Comptabilité, 1003’ File (insertion avant Finance)

Victor OYETOLA Administration Linux 11 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
sed -i ’/Finance/i Comptabilité, 1003’ File (insertion avant Finance)
sed ’s/^/Fruit: /’ file (Insérer Fruit en début de chaque ligne)

Victor OYETOLA Administration Linux 11 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
sed -i ’/Finance/i Comptabilité, 1003’ File (insertion avant Finance)
sed ’s/^/Fruit: /’ file (Insérer Fruit en début de chaque ligne)
sed ’s/$/ Fruit/’ file (Insérer Fruit en fin de chaque ligne)

Victor OYETOLA Administration Linux 11 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
sed -i ’/Finance/i Comptabilité, 1003’ File (insertion avant Finance)
sed ’s/^/Fruit: /’ file (Insérer Fruit en début de chaque ligne)
sed ’s/$/ Fruit/’ file (Insérer Fruit en fin de chaque ligne)
sed ’s/a/A/2’ file (Remplacer à partir de la 2eme occurence)

Victor OYETOLA Administration Linux 11 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
sed -i ’/Finance/i Comptabilité, 1003’ File (insertion avant Finance)
sed ’s/^/Fruit: /’ file (Insérer Fruit en début de chaque ligne)
sed ’s/$/ Fruit/’ file (Insérer Fruit en fin de chaque ligne)
sed ’s/a/A/2’ file (Remplacer à partir de la 2eme occurence)
sed -e "s![Ll]inux!<B>&</B>!g" (encadre linux ou Linux par la balise <B>)

Victor OYETOLA Administration Linux 11 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
sed -i ’/Finance/i Comptabilité, 1003’ File (insertion avant Finance)
sed ’s/^/Fruit: /’ file (Insérer Fruit en début de chaque ligne)
sed ’s/$/ Fruit/’ file (Insérer Fruit en fin de chaque ligne)
sed ’s/a/A/2’ file (Remplacer à partir de la 2eme occurence)
sed -e "s![Ll]inux!<B>&</B>!g" (encadre linux ou Linux par la balise <B>)
sed -e ’s/\([0-9]*\)-\([0-9]*\)-\([0-9]*\)/\3-\2-\1/’ <<< 16-05-2017
(change le format de la date de JJ-MM-AAAA à AAAA-MM-JJ)

Victor OYETOLA Administration Linux 11 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
sed -i ’/Finance/i Comptabilité, 1003’ File (insertion avant Finance)
sed ’s/^/Fruit: /’ file (Insérer Fruit en début de chaque ligne)
sed ’s/$/ Fruit/’ file (Insérer Fruit en fin de chaque ligne)
sed ’s/a/A/2’ file (Remplacer à partir de la 2eme occurence)
sed -e "s![Ll]inux!<B>&</B>!g" (encadre linux ou Linux par la balise <B>)
sed -e ’s/\([0-9]*\)-\([0-9]*\)-\([0-9]*\)/\3-\2-\1/’ <<< 16-05-2017
(change le format de la date de JJ-MM-AAAA à AAAA-MM-JJ)

sed -re ’s/([0-9]*)-([0-9]*)-([0-9]*\)/\3-\2-\1/’ <<< 16-05-2017

Victor OYETOLA Administration Linux 11 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
sed -i ’/Finance/i Comptabilité, 1003’ File (insertion avant Finance)
sed ’s/^/Fruit: /’ file (Insérer Fruit en début de chaque ligne)
sed ’s/$/ Fruit/’ file (Insérer Fruit en fin de chaque ligne)
sed ’s/a/A/2’ file (Remplacer à partir de la 2eme occurence)
sed -e "s![Ll]inux!<B>&</B>!g" (encadre linux ou Linux par la balise <B>)
sed -e ’s/\([0-9]*\)-\([0-9]*\)-\([0-9]*\)/\3-\2-\1/’ <<< 16-05-2017
(change le format de la date de JJ-MM-AAAA à AAAA-MM-JJ)

sed -re ’s/([0-9]*)-([0-9]*)-([0-9]*\)/\3-\2-\1/’ <<< 16-05-2017


sed ’s/.*/\L&/’ (:Lower mettre tout en miniscule avec \l pour les premières lettres)

Victor OYETOLA Administration Linux 11 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
sed -i ’/Finance/i Comptabilité, 1003’ File (insertion avant Finance)
sed ’s/^/Fruit: /’ file (Insérer Fruit en début de chaque ligne)
sed ’s/$/ Fruit/’ file (Insérer Fruit en fin de chaque ligne)
sed ’s/a/A/2’ file (Remplacer à partir de la 2eme occurence)
sed -e "s![Ll]inux!<B>&</B>!g" (encadre linux ou Linux par la balise <B>)
sed -e ’s/\([0-9]*\)-\([0-9]*\)-\([0-9]*\)/\3-\2-\1/’ <<< 16-05-2017
(change le format de la date de JJ-MM-AAAA à AAAA-MM-JJ)

sed -re ’s/([0-9]*)-([0-9]*)-([0-9]*\)/\3-\2-\1/’ <<< 16-05-2017


sed ’s/.*/\L&/’ (:Lower mettre tout en miniscule avec \l pour les premières lettres)
sed ’s/.*/\U&/’(: upper mettre tout en majuscule \u pour les premières lettres)

Victor OYETOLA Administration Linux 11 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
sed -i ’/Finance/i Comptabilité, 1003’ File (insertion avant Finance)
sed ’s/^/Fruit: /’ file (Insérer Fruit en début de chaque ligne)
sed ’s/$/ Fruit/’ file (Insérer Fruit en fin de chaque ligne)
sed ’s/a/A/2’ file (Remplacer à partir de la 2eme occurence)
sed -e "s![Ll]inux!<B>&</B>!g" (encadre linux ou Linux par la balise <B>)
sed -e ’s/\([0-9]*\)-\([0-9]*\)-\([0-9]*\)/\3-\2-\1/’ <<< 16-05-2017
(change le format de la date de JJ-MM-AAAA à AAAA-MM-JJ)

sed -re ’s/([0-9]*)-([0-9]*)-([0-9]*\)/\3-\2-\1/’ <<< 16-05-2017


sed ’s/.*/\L&/’ (:Lower mettre tout en miniscule avec \l pour les premières lettres)
sed ’s/.*/\U&/’(: upper mettre tout en majuscule \u pour les premières lettres)
sed ’s/.*/& est un Fruit/’ file (remplace le text trouvé par lui même plus ’est un
Fruit’)

Victor OYETOLA Administration Linux 11 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
1 sed -n -e ’/3[0-9]\{4\}/w depts3’ -e ’/6[0-9]\{4\}/w depts6’ dep.txt
(copie les lignes contenant 3XXXX dans le fichier depts3 et celles contenant 6XXXX dans
le fichier depts6 où X ∈ [0 − 9])

Victor OYETOLA Administration Linux 12 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
1 sed -n -e ’/3[0-9]\{4\}/w depts3’ -e ’/6[0-9]\{4\}/w depts6’ dep.txt
(copie les lignes contenant 3XXXX dans le fichier depts3 et celles contenant 6XXXX dans
le fichier depts6 où X ∈ [0 − 9])
2 sed ’s/telephone/fax/2’ file (remplace seulement la 2eme occurence du mot
telephone par fax )

Victor OYETOLA Administration Linux 12 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
1 sed -n -e ’/3[0-9]\{4\}/w depts3’ -e ’/6[0-9]\{4\}/w depts6’ dep.txt
(copie les lignes contenant 3XXXX dans le fichier depts3 et celles contenant 6XXXX dans
le fichier depts6 où X ∈ [0 − 9])
2 sed ’s/telephone/fax/2’ file (remplace seulement la 2eme occurence du mot
telephone par fax )
3 sed -n ’1,4p’ file (affiche les lignes de 1 à 4)

Victor OYETOLA Administration Linux 12 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
1 sed -n -e ’/3[0-9]\{4\}/w depts3’ -e ’/6[0-9]\{4\}/w depts6’ dep.txt
(copie les lignes contenant 3XXXX dans le fichier depts3 et celles contenant 6XXXX dans
le fichier depts6 où X ∈ [0 − 9])
2 sed ’s/telephone/fax/2’ file (remplace seulement la 2eme occurence du mot
telephone par fax )
3 sed -n ’1,4p’ file (affiche les lignes de 1 à 4)
4 sed ’18,25d’ file (effacer les lignes de 18 à 25)

Victor OYETOLA Administration Linux 12 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
1 sed -n -e ’/3[0-9]\{4\}/w depts3’ -e ’/6[0-9]\{4\}/w depts6’ dep.txt
(copie les lignes contenant 3XXXX dans le fichier depts3 et celles contenant 6XXXX dans
le fichier depts6 où X ∈ [0 − 9])
2 sed ’s/telephone/fax/2’ file (remplace seulement la 2eme occurence du mot
telephone par fax )
3 sed -n ’1,4p’ file (affiche les lignes de 1 à 4)
4 sed ’18,25d’ file (effacer les lignes de 18 à 25)
5 sed ’1,3!d’ (supprimer les toutes les lignes sauf de 1 à 3)

Victor OYETOLA Administration Linux 12 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
1 sed -n -e ’/3[0-9]\{4\}/w depts3’ -e ’/6[0-9]\{4\}/w depts6’ dep.txt
(copie les lignes contenant 3XXXX dans le fichier depts3 et celles contenant 6XXXX dans
le fichier depts6 où X ∈ [0 − 9])
2 sed ’s/telephone/fax/2’ file (remplace seulement la 2eme occurence du mot
telephone par fax )
3 sed -n ’1,4p’ file (affiche les lignes de 1 à 4)
4 sed ’18,25d’ file (effacer les lignes de 18 à 25)
5 sed ’1,3!d’ (supprimer les toutes les lignes sauf de 1 à 3)
6 sed -n ’/Debut/,/Fin/p’ (afficher les lignes comprises entre les mots Debut et Fin)

Victor OYETOLA Administration Linux 12 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
1 sed -n -e ’/3[0-9]\{4\}/w depts3’ -e ’/6[0-9]\{4\}/w depts6’ dep.txt
(copie les lignes contenant 3XXXX dans le fichier depts3 et celles contenant 6XXXX dans
le fichier depts6 où X ∈ [0 − 9])
2 sed ’s/telephone/fax/2’ file (remplace seulement la 2eme occurence du mot
telephone par fax )
3 sed -n ’1,4p’ file (affiche les lignes de 1 à 4)
4 sed ’18,25d’ file (effacer les lignes de 18 à 25)
5 sed ’1,3!d’ (supprimer les toutes les lignes sauf de 1 à 3)
6 sed -n ’/Debut/,/Fin/p’ (afficher les lignes comprises entre les mots Debut et Fin)
7 sed -e "s/tati?/toto/g" (remplacer les mots tat ou tati par toto)

Victor OYETOLA Administration Linux 12 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
1 sed -n -e ’/3[0-9]\{4\}/w depts3’ -e ’/6[0-9]\{4\}/w depts6’ dep.txt
(copie les lignes contenant 3XXXX dans le fichier depts3 et celles contenant 6XXXX dans
le fichier depts6 où X ∈ [0 − 9])
2 sed ’s/telephone/fax/2’ file (remplace seulement la 2eme occurence du mot
telephone par fax )
3 sed -n ’1,4p’ file (affiche les lignes de 1 à 4)
4 sed ’18,25d’ file (effacer les lignes de 18 à 25)
5 sed ’1,3!d’ (supprimer les toutes les lignes sauf de 1 à 3)
6 sed -n ’/Debut/,/Fin/p’ (afficher les lignes comprises entre les mots Debut et Fin)
7 sed -e "s/tati?/toto/g" (remplacer les mots tat ou tati par toto)
8 sed -e "s/tata+/toto/g"(: remplacer tata tataa tataaaa etc. par toto)

Victor OYETOLA Administration Linux 12 / 27


grep Présentation de sed
sed Commandes usuelles de sed
awk utilisation de sed

sed en action
1 sed -n -e ’/3[0-9]\{4\}/w depts3’ -e ’/6[0-9]\{4\}/w depts6’ dep.txt
(copie les lignes contenant 3XXXX dans le fichier depts3 et celles contenant 6XXXX dans
le fichier depts6 où X ∈ [0 − 9])
2 sed ’s/telephone/fax/2’ file (remplace seulement la 2eme occurence du mot
telephone par fax )
3 sed -n ’1,4p’ file (affiche les lignes de 1 à 4)
4 sed ’18,25d’ file (effacer les lignes de 18 à 25)
5 sed ’1,3!d’ (supprimer les toutes les lignes sauf de 1 à 3)
6 sed -n ’/Debut/,/Fin/p’ (afficher les lignes comprises entre les mots Debut et Fin)
7 sed -e "s/tati?/toto/g" (remplacer les mots tat ou tati par toto)
8 sed -e "s/tata+/toto/g"(: remplacer tata tataa tataaaa etc. par toto)
9 sed -i -re ’/=/s/([A-Za-z]+)=(0|1)/\2=>\1/’ file (intervertir variable et valeur
dans file)
Victor OYETOLA Administration Linux 12 / 27
grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

awk dérive du nom de ces inventeurs:


Alfred Aho
Peter Weinberger
Brian Kernighan

Victor OYETOLA Administration Linux 13 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

awk vs sed
awk est un langage de programmation puissant pour la manipulation
de fichiers texte.
Awk manipule les champs, agit comme sed
Sed manipule les lignes
awk :
est approprié pour les calculs numériques,
utilise des variables, des structures de contrôle et des boucles
présente une flexibilité dans l’affichage des données
intègre des fonctions arithmetiques
permet la manipulation des chaînes de caractères
utilise la même syntaxe que le langage C

Victor OYETOLA Administration Linux 14 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

exécuter awk
awk ’program ’ input_file(s) où program et input_file(s) sont
fournis comme arguments
awk ’program’ l’entrée provient de l’entrée standard
awk -f program_file input_files le programme provient d’un
fichier.

Victor OYETOLA Administration Linux 15 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

exécuter awk
awk ’program ’ input_file(s) où program et input_file(s) sont
fournis comme arguments
awk ’program’ l’entrée provient de l’entrée standard
awk -f program_file input_files le programme provient d’un
fichier.

awk consiste en :
Un block BEGIN (optionnel) à exécuter avant le traitement des
données
Une paire condition { action } qui, pour chaque condition
remplie, l’action correspondante est exécutée
Un block END (optionnel) a éxécuter à la fin du traitement

Victor OYETOLA Administration Linux 15 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

structures de awk
BEGIN {action}
condition {action}
condition {action}
.
.
.
condition { action}
END {action}

Victor OYETOLA Administration Linux 16 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

condition et action
En l’absence de condition , l’action s’exécute sur toutes les
lignes ex: awk ’{print $1,$2}’ file (affiche les champs 1 et 2)
En l’absence de l’action chaque lignes qui remplissant la
condition est affichée ex: awk ’$2==“rouge”’ file (affiche les lignes où
champ2=rouge)

les conditions sont listées, les actions sont encadrés par { }


une expression régulière comme condition est encadrée par / /
les conditions peuvent être combinées avec les opérateurs || pour
OU logique et && pour ET logique
ex. /Coton/ && ($1==10) afficher les lignes contenant Coton et pour lesquelles le
1er champs =10

Victor OYETOLA Administration Linux 17 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

Les Variables
Awk peut définir et utiliser des variables
ex: awk ’BEGIN {sum=0}; { sum+= $2}; END{print “somme= ”sum }’ file
Certaines variables sont prédéfinies:
RS : Record Separator, par défaut c’est une nouvelle ligne mais
vous pouvez le changer dans le block BEGIN (pas très utile)

Victor OYETOLA Administration Linux 18 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

Les Variables
Awk peut définir et utiliser des variables
ex: awk ’BEGIN {sum=0}; { sum+= $2}; END{print “somme= ”sum }’ file
Certaines variables sont prédéfinies:
RS : Record Separator, par défaut c’est une nouvelle ligne mais
vous pouvez le changer dans le block BEGIN (pas très utile)
NR : Number of Record, il représente le numero de
l’enregistrement courant ex: awk ’NR<3’ file

Victor OYETOLA Administration Linux 18 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

Les Variables
Awk peut définir et utiliser des variables
ex: awk ’BEGIN {sum=0}; { sum+= $2}; END{print “somme= ”sum }’ file
Certaines variables sont prédéfinies:
RS : Record Separator, par défaut c’est une nouvelle ligne mais
vous pouvez le changer dans le block BEGIN (pas très utile)
NR : Number of Record, il représente le numero de
l’enregistrement courant ex: awk ’NR<3’ file
FS : Field Separator, Il peut être également précisé par l’option -F

Victor OYETOLA Administration Linux 18 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

Les Variables
Awk peut définir et utiliser des variables
ex: awk ’BEGIN {sum=0}; { sum+= $2}; END{print “somme= ”sum }’ file
Certaines variables sont prédéfinies:
RS : Record Separator, par défaut c’est une nouvelle ligne mais
vous pouvez le changer dans le block BEGIN (pas très utile)
NR : Number of Record, il représente le numero de
l’enregistrement courant ex: awk ’NR<3’ file
FS : Field Separator, Il peut être également précisé par l’option -F
OFS : Output Field Separator, permet de changer le séparateur à
l’affichage ex: awk -F: ’{print $1,$2,$3}’ OFS=“# ”file

Victor OYETOLA Administration Linux 18 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

Les Variables
Awk peut définir et utiliser des variables
ex: awk ’BEGIN {sum=0}; { sum+= $2}; END{print “somme= ”sum }’ file
Certaines variables sont prédéfinies:
RS : Record Separator, par défaut c’est une nouvelle ligne mais
vous pouvez le changer dans le block BEGIN (pas très utile)
NR : Number of Record, il représente le numero de
l’enregistrement courant ex: awk ’NR<3’ file
FS : Field Separator, Il peut être également précisé par l’option -F
OFS : Output Field Separator, permet de changer le séparateur à
l’affichage ex: awk -F: ’{print $1,$2,$3}’ OFS=“# ”file
$0 à $n: $0 représente un enrégistrement tout entier tandis que
$1 à $n représente chaque champ de 1 à n

Victor OYETOLA Administration Linux 18 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

Les Variables
Awk peut définir et utiliser des variables
ex: awk ’BEGIN {sum=0}; { sum+= $2}; END{print “somme= ”sum }’ file
Certaines variables sont prédéfinies:
RS : Record Separator, par défaut c’est une nouvelle ligne mais
vous pouvez le changer dans le block BEGIN (pas très utile)
NR : Number of Record, il représente le numero de
l’enregistrement courant ex: awk ’NR<3’ file
FS : Field Separator, Il peut être également précisé par l’option -F
OFS : Output Field Separator, permet de changer le séparateur à
l’affichage ex: awk -F: ’{print $1,$2,$3}’ OFS=“# ”file
$0 à $n: $0 représente un enrégistrement tout entier tandis que
$1 à $n représente chaque champ de 1 à n
NF : Number of Field, le nombre de champs à la ligne courante
Victor OYETOLA Administration Linux 18 / 27
grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

ls | awk ’
BEGIN { print "List of html files:" }
/\.html$/ { print }
END { print "There you go!" }

Victor OYETOLA Administration Linux 19 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

ls | awk ’
BEGIN { print "List of html files:" }
/\.html$/ { print }
END { print "There you go!" }

awk ’
BEGIN { sum = 0 }
{ sum +=$2 }
END { print sum }

Victor OYETOLA Administration Linux 19 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

cat file awk ’{print $1}’ file awk ’{print $2}’ file awk ’{print $0}’ file
Name Domain Name Domain Name Domain
Deepak Banking Deepak Banking Deepak Banking
Neha Telecom Neha Telecom Neha Telecom
Vijay Finance Vijay Finance Vijay Finance
Guru Migration Guru Migration Guru Migration

cat file1 awk -F":" ’{print $1}’ file1 awk -F: ’{print $1,$3}’ file1
Name:Domain:Expertise Name Name Expertise
Deepak: Banking:MQ Deepak Deepak MQ
Neha:Telecom:Power Neha Neha Power
Vijay: Finance:CRM Vijay Vijay CRM
Guru: Migration:Unix Guru Guru Unix

awk -F: ’NR!=1 {print $2,$3}’ OFS="," file1


Banking, MQ
Telecom, Power
Finance, CRM
Migration, Unix
Victor OYETOLA Administration Linux 20 / 27
grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

cat file2 awk -F"," ’{x+=$2}END{print x}’ file2


Item1,200 3100
Item2,500 awk -F, ’$1=="Item1"{x+=$2;}END{print x}’ file2
Item3,900 800
Item2,800 awk -F, ’{a[$1]+=$2;}END{for(i in a)print i", "a[i];}’ file2
Item1,600 Item1, 800
Item3,100 Item2, 1300
Item3, 1000

awk -F"," ’{x+=$2;print}END{print "Total,"x}’ file2 awk -F, ’{if(a[$1]<$2)a[$1]=$2;}END{for(i in a){print i,a[
Item1,200 Item1,600
Item2,500 Item2,800
Item3,900 Item3,900
Item2,800
Item1,600
Item3,100
Total,3100

Victor OYETOLA Administration Linux 21 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

awk - Working on CSV file


awk - Printing count and first record
awk -F, ’{a[$1]++;}END{for (i in a)print i, a[i];}’ file2 awk -F, ’!a[$1]++’ file2
Item1,2 Item1,200
Item2,2 Item2,500
Item3,2 Item3,900

concatenate value of each group


awk -F, ’{if(a[$1])a[$1]=a[$1]":"$2; else a[$1]=$2;}END{for (i in a)print i, a[i];}’ OFS=, file2
Item1,200:600
Item2,500:800
Item3,900:100
Same result as previous with ternaire operator
awk -F, ’{(a[$1]=a[$1]?a[$1]":"$2:$2;}END{for (i in a)print i, a[i];}’ OFS=, file2
Item1,200:600
Item2,500:800
Item3,900:100
Victor OYETOLA Administration Linux 22 / 27
grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

awk - Working on CSV file

Split file into different files, one for each item


awk -F, ’{print > $1}’ file2
awk -F, ’{print > $1".txt"}’ file2
awk -F, ’{print $2 > $1".txt"}’ file2
awk -F, ’{if($2<=500)print > "500L.txt";else print > "500G.txt"}’ file2
awk -F, ’{x=($2<=500)?"500L.txt":"500G.txt"; print > x}’ file2

Victor OYETOLA Administration Linux 23 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

awk - Match a pattern in a file in Linux

cat file3 awk ’$0 ˜ /Rent/{print}’ file3 awk -F, ’$1=="Rent" ’ file3
Medicine,200 Rent,900 Rent,900
Grocery,500 awk -F, ’$1 ˜ /Rent/’ file3 awk ’/Rent|Medicine/’ file3
Rent,900 Rent,900 Medicine,200
Grocery,800 awk ’/Rent/print’ file3 Rent,900
Medicine,600 Rent,900 Medicine,600

awk -F, ’$2>500’ file awk -F, ’$1 == "Medicine"{print $2}’ file3 awk -F, ’!/Medicine/’ file3
Rent,900 200 awk -F, ’$1 ! ˜ /Medicine/’ fi
Grocery,800 600 Grocery,500
Medicine,600 awk -F, ’/Medicine/ && $2>500’ file Rent,900
Medicine,600 Grocery,800

Victor OYETOLA Administration Linux 24 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

insert / remove / update fields of a CSV

cat file awk -F, ’{$1=++i FS $1;}1’ OFS=, file awk -F, ’{$(NF+1)=++i;}1’ OFS=, file
Unix,10,A 1,Unix,10,A Unix,10,A,1
Linux,30,B 2,Linux,30,B Linux,30,B,2
Solaris,40,C 3,Solaris,40,C Solaris,40,C,3
Fedora,20,D 4,Fedora,20,D Fedora,20,D,4
Ubuntu,50,E 5,Ubuntu,50,E Ubuntu,50,E,5

awk -F, ’{$2+=10;}1’ OFS=, file4 awk -F, ’{$1=toupper($1)}1’ OFS=, file4
Unix,20,A UNIX,10,A
Linux,40,B LINUX,30,B
Solaris,50,C SOLARIS,40,C
Fedora,30,D FEDORA,20,D
Ubuntu,60,E UBUNTU,50,E

Victor OYETOLA Administration Linux 25 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

Fonctions numériques
Fonctions Signification
tan2(y,x) arctangente de x/y en redians dans l’interval -pi pi
cos(x) cosinus (en radians)
exp(x) exponentielle e à la puissance x
int(x) valeur entière
log(x) logarythme naturel
rand() nombre aléatoire entre 0 et 1
sin(x) sinus (en radians)
sqrt(x) racine carrée
srand(x) reinitialiser le générateur de nombre aléatoire

Victor OYETOLA Administration Linux 26 / 27


grep Présentation de awk
sed awk par l’exemple
awk Les fonctions dans awk

Les fonctions sur les chaines de caractères


Fonction Signification
gsub(r,s,t) sur la chaine t, remplace toutes les occurance de r par s
index(s,t) retourne la position la plus à gauche de la chaine t dans la chaine s
length(s) retourne la longueur de la chaine s
match(s,r) retourne l’index ou s correspond à r et positionne RSTART et RLENTH
split(s,a,fs) split s dans le tableau a sur fs, retourne le nombre de champs
sprintf(fmt,liste expr) retourne la liste des expressions formattée suivant fmt
sub(r,s,t) comme gsub, mais remplce uniquement la première occurence
substr(s,i,n) retourne la sous chaine de s commencant en i et de taille n
asort(s [, d [, how] ]) Tri le tableau s sur les valeurs avec des indices numériques
asorti(s [, d [, how] ]) Tri le tableau s par contre sur les indices

Victor OYETOLA Administration Linux 27 / 27

Vous aimerez peut-être aussi