• Aucun résultat trouvé

Introduction au Syst`eme d’Exploitation Unix/Linux Utilitaire de fichier Unix :

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction au Syst`eme d’Exploitation Unix/Linux Utilitaire de fichier Unix :"

Copied!
26
0
0

Texte intégral

(1)

Utilitaire de fichier Unix :sed

B. Jacob

IC2

26 septembre 2017

(2)

Introduction au Syst`eme d’Exploitation Unix/Linux

Plan

1 Int´erˆet

2 Utilitairesed

(3)

Plan

1 Int´erˆet

(4)

Introduction au Syst`eme d’Exploitation Unix/Linux Int´erˆet

Qu’est ce que c’est ?

sedest un programme qui

applique des transformations sur des fichiers textes poss`ede leurs propres commandes d’´edition

→ est plus complexe `a utiliser que les commandes d´ej`a vues est un filtre

est disponible sur pratiquement tous les SE disposant de commandes en ligne.

(5)

R´ esum´ e

Pour manipuler des fichiers textes on peut le faire par l’utilitairessed

→ outil puissant mais complexe `a utiliser les fonctionsSearch and Replace d’un ´editeur de texte

→ ce sont des fonctions faciles `a utiliser mais fastidieuses si nombre d’op´erations %

(6)

Introduction au Syst`eme d’Exploitation Unix/Linux Int´erˆet

Dans quel cas l’utiliser ?

Analogie au d´ecoupage de planches :

pour une planche : utilisation d’une scie `a main

→ mode d’emploi simple

→ temps de traitement court

→ on ne passe pas plus de temps `a utiliser l’outil que d’apprendre `a s’en servir

( fonctions Search and Replace d’un ´editeur de texte) pour un lot de planches : utilisation d’une scie circulaire de menuisier

→ mode d’emploi plus complexe

→ temps de traitement long mais automatique

→ gain de temps par rapport au d´ecoupage du lot de planches avec une scie `a main ( utilitairesed)

(7)

Plan

2 Utilitairesed

(8)

Introduction au Syst`eme d’Exploitation Unix/Linux Utilitairesed

Pr´ esentation

sed= StreamEDitor format :

sed [-n] [-e script] [fichier] ou

sed [-n] [-f fichier script] [fichier] c’est un filtre, donc :

Prend ses donn´ees (des lignes)

dans l’entr´ee standard (clavier, par d´efaut) ou dans un fichier (si[fichier]positionn´e) Affiche ses r´esultats sur

la sortie standard (´ecran, par d´efaut) ou ne les affiche pas (si option[-n]positionn´ee)

(9)

Pr´ esentation

sed [-n] [-e script] [fichier] ou

sed [-n] [-f fichier script] [fichier]

sedmodifie les lignes `a partir d’unscript script=commandes d’´edition

en ligne si-e script (1 commande par-e) contenues dans un fichier si-f fichier script

(10)

Introduction au Syst`eme d’Exploitation Unix/Linux Utilitairesed

Commandes d’´ edition

[addresse [,adresse]] fonction [arguments]

s´electionne les lignes selon lesadresses

leur applique une fonctionde sed avec sesarguments

(11)

Adresses de sed

vide → toutes les lignes sont s´electionn´ees n → la ligne de num´eron dans chaque fichier

$→ seulement la derni`ere ligne de chaque fichier n1,n2 → node lignes entren1 et n2

/expression reguliere/ → d´efinit un contexte d’adresse

(12)

Introduction au Syst`eme d’Exploitation Unix/Linux Utilitairesed

Contexte d’Adresses

d´ecrit le contexte dans lequel doivent ˆetre les lignes s´electionn´ees.

d´efinit par une/expression reguliere/

sedsupporte les expressions r´eguli`eres ´etendues (voir cours sur les Regexp)

+\n(NEWLINE)

(13)

Exemples adresses sed

Transformation des lignes de tous les fichiers commen¸cant partoto sed -e "fonction [arguments]" toto.*

→transformation sur toutes les lignes des fichiers sed -e "12 fonction [arguments]" toto.*

→transformation sur la 12eligne de chaque fichier sed -e "12,24 fonction [arguments]" toto.*

→transformation sur sur les lignes 12 `a 24 de chaque fichier sed -e "$ fonction [arguments]" toto.*

→transformation sur la derni`ere ligne de chaque fichier sed -e "/ˆ[eE].*z$/ fonction [arguments]" toto.*

→transformation sur les lignes commen¸cant par e ou E et se

(14)

Introduction au Syst`eme d’Exploitation Unix/Linux Utilitairesed

Fonctions de sed

Il existe beaucoup de fonctions (Commandes d’´edition)

→ man sed

1 fonction = 1 caract`ere Parmis les plus utilis´ees :

a (append) ajoute du texte c (change) remplace la ligne d(delete) efface la ligne

wfichier (write) ´ecrit la ligne dansfichier

(15)

Exemple fonction ajout

Nom:a

Argument: ligne `a ins´erer

Avec commande en ligne (option -e)

$ cat test_sed.txt aaaaaa

bbbbbb cccccc

$ sed -e "1 a \\

zzzzzz" test sed.txt aaaaaa

zzzzzz

(16)

Introduction au Syst`eme d’Exploitation Unix/Linux Utilitairesed

Exemple fonction ajout

Avec un fichier script (option-f)

$ cat test sed.txt aaaaaa

bbbbbb cccccc

$ cat script.sed 1 a \

zzzzzz

$ sed -f script.sed test sed.txt aaaaaa

zzzzzz bbbbbb cccccc

(17)

Exemple fonction change

Nom:c

Argument: ligne qui remplace

$ cat test sed.txt aaaaaa

bbbbbb cccccc

$ cat script.sed 3 c \

zzzzzz

$ sed -f script.sed test sed.txt aaaaaa

bbbbbb zzzzzz

(18)

Introduction au Syst`eme d’Exploitation Unix/Linux Utilitairesed

Exemple fonction delete

Nom:d

Argument: rien

$ cat test sed.txt aaaaaa

bbbbbb cccccc

$ cat script.sed 2 d

$ sed -f script.sed test sed.txt aaaaaa

cccccc

(19)

Exemple fonction write

Nom:w

Argument: nom du fichier o`u l’on ´ecrit

$ cat test sed.txt aaaaaa

bbbbbb cccccc

$ cat script.sed 1 w toto.txt

$ sed -f script.sed test sed.txt

aaaaaa

bbbbbb $ cat toto.txt

(20)

Introduction au Syst`eme d’Exploitation Unix/Linux Utilitairesed

Fonction substitute

C’estla plus utilis´ee Nom:s

Argument:/reg-exp/remplacement/flags reg-exp expression r´eguli`ere de sed

Stockage\( reg-exp \) Rappel\1 \2 \3 ...

flags :

g(global) (faire toutes les substitutions de la ligne)

navecn[1512] remplace seulement la nieme occurence p(print) si ok sort la ligne sur la sortie standard

w fichier (write) si ok ´ecrit la ligne dansfichier

(21)

Exemples simples

$ cat f

aaa bbb aaa bbb aaa aaa ccc ddd

$ sed -e "s/aaa/AAA/" f →substitution 1reoccurence AAA bbb aaa bbb aaa

AAA ccc ddd

$ sed -e "s/aaa/AAA/g" f→ substitution toutes les occurences

AAA bbb AAA bbb AAA AAA ccc ddd

$ sed -e "s/aaa/AAA/3" f→ substitution 3eoccurence

(22)

Introduction au Syst`eme d’Exploitation Unix/Linux Utilitairesed

Exemples simples

$ cat f

aaa bbb aaa bbb aaa aaa ccc ddd

$ sed -e "s/ccc/CCC/w toto.txt" f

→substitution + ´ecriture dans le fichier toto.txt

aaa bbb aaa bbb aaa aaa ZZZ ddd

$ cat toto.txt aaa ZZZ ddd

(23)

Exemples simples

$ cat f

aaa bbb aaa bbb aaa aaa ccc ddd

$ sed -e "s/aaa/AAA/p" f

→affichage contenu de f + affichage ligne substitu´ee (bof) aaa bbb aaa bbb aaa

aaa ZZZ ddd aaa ZZZ ddd

⇒Int´erˆet de l’option [-n]

$ sed -n -e "s/aaa/AAA/p" f

→seulement affichage ligne substitu´ee

(24)

Introduction au Syst`eme d’Exploitation Unix/Linux Utilitairesed

Exemple avec stockage et rappel des champs

Fonction d’inversion des 2 premiers champs

$ cat f

aaaaa:bbbbbb:ccccc ddddd:ee:ff

ggg:hhhhh:iiii

$sed -e ’s/\^\([^:]*\):\([^:]*\)/\2:\1/’ f bbbbbb:aaaaa:ccccc

ee:ddddd:ff hhhhh:ggg:iiii

(25)

Exemples avec stockage et du rappel des champs

Synopsis

aaaaa:bbbbbb:ccccc

s/\^\([^:]*\):\([^:]*\)/\2:\1/

champ 1 champ 2 ligne entrée

ligne sortie

bbbbbb:aaaaa

\2:\1

(26)

Introduction au Syst`eme d’Exploitation Unix/Linux Utilitairesed

Exercices

Exercices sursed

Références

Documents relatifs

Introduction Systèmes d’exploitation, Unix et Linux Connexion-Déconnexion Commandes Unix Système de fichiers.. Un

Ex :Chercher dans toute l’arborescence, les fichiers ordinaires appartenant à olivier, dont la permission est fixée à 755 : find / -type f -user olivier -perm 755 -print Ex :

1 Retrouver tous les fichiers qui s’appellent syslog situés dans /var/log (et ses sous-rep).!. Recherche d’un fichier find La commande sed La commande sort La commande wc La

• cat telephone.txt : la commande cat reçoit en entrée le nom du fichier “telephone.txt“ qu’elle doit ensuite se charger d’ouvrir pour afficher son contenu.. • Si vous

Des scripts Shell premier script Les variables en shell Conditionnelles Les tests Les Boucles.. la

Par exemple si vous travaillez sur une appli du genre base de données, vous lancez une requête (commande dans le langage base de données) couteuse en temps, pour patienter

Syst` eme de fichiers = table de i-noeuds (+ arborescence) Informations contenues dans un

Les poumons : A la descente sous l’effet de la pression le volume des poumons diminue pour retrouver son volume initial au retour en surface avec le retour à la