home www.shellunix.com commandes Unix Shell unix: sh Shell unix: csh Shell unix: ksh expressions r馮uli鑽es sed awk perl

Obtenir l'aide m駑oire Unix au format pdf


La commande sed

sed est un 馘iteur non interactif.

Cette commande permet d'appliquer un certain nombre de commandes sur un fichier puis d'en afficher le resultat (sans modification du fichier de d駱art) sur la sortie standard.

Syntaxe

sed [-n] [-e commande] [-f fichier de commandes] [fichier]

-n
馗rit seulement les lignes sp馗ifi馥s (par l'option /p) sur la sortie standard
-e
permet de specifier les commandes ? appliquer sur le fichier. Cette option est utile lorque vous appliquez plusieurs commandes. Afin d'eviter que le shell interprette certains caracteres, il faut mieux encadrer la commande avec des ' ou des " .
-f
les commandes sont lu ? partir d'un fichier.

Principe de fonctionnement

Pour chaque ligne , on applique la commande (si cela est possible) puis on affiche sur la sortie standard la ligne modifi馥 ou non.

la syntaxe g駭駻ale des commandes est de la forme caracterisation_des_adresses commandes avec caract駻isation_des_adresses de la forme :

toutes les lignes
num
la ligne num (la derni鑽e ligne est r馭駻enc馥 par $)
num1,num2
les lignes entre les lignes num1 et num2
RE
les lignes correspondant ? l'expression r馮uli鑽e RE
RE1,RE2
les lignes entre la premi鑽e ligne correspondant ? l'expression r馮uli鑽eRE1 et la premi鑽e ligne correspondant ? l'expression r馮uli鑽e RE2

Les commandes sed

La commande de substitution s

syntaxe :

ad1,ad2s/RE/remplacement/flags

Remplace les expressions reguli鑽es RE par la chaine de remplacement entre les lignes ad1 ? ad2

flags
g
global, c'est ? dire toutes les occurences de la chaine RE (par defaut seule la premi鑽e occurence est remplac馥)
p
imprime la ligne (utile avec l'option -n)
w fichier
ecrit la ligne dans le fichier specifi? en plus de la sortie standard.

exemple :

sed "s/[Cc]omputer/COMPUTER/g" fichier
sed -e "s/\([0-9][0-9]*\)/**1円**/" fichier : encadre le premier nombre de la ligne avec des **

La n馮ation !

syntaxe :

ad1,ad2 !fonction argument

La fonction est appliqu馥 ? toutes les lignes qui ne correspondent pas ? la caract駻isation.

La commande de supression d

efface les lignes (au niveau de la sortie, le fichier d'origine n'est pas modifi?)

example:

sed "1,10d" fichier : sortie du fichier ? partir de la onzi鑪e ligne
sed "/^From/!d" fichier : On n'efface tout sauf les lignes commen軋nt par From , donc on imprime les lignes commen軋nt par From.

Remarque :

Il est parfois plus facile de caract駻iser la n馮ation de ce que l'on veut (voir example pr馗馘ent) . Par exemple plutot de r馗uperer ce que je veux, j'efface ce qui ne m'interresse pas <:p>

Les commande d'insertions a,i

a\
texte
: 馗rit le texte apr鑚 la ligne

i\
texte
: 馗rit le texte avant la ligne

exemple :
fichier de commandes:

1i\
\
------------------------------------------------------------------------------------\
LOGIN USER\
------------------------------------------------------------------------------------
s/:/!/
s/:/-/
s/:/-/
s/:/!/
s/!.*!/ /
s/:.*//
 
commande:
 sed -f fich_commandes /etc/passwd 

resultat :
------------------------------------------------------------------------------------
LOGIN USER 
------------------------------------------------------------------------------------ 
root Operator 
jd Jean Dupond 
vm Vincent Martin 

Les autres commandes: q, = et w

q
quitte
=
馗rit les num駻o de ligne
w fichier
馗rit dans un fichier

exemple :

fichier d'entr馥 :
Un,
deux.
Trois,
quatre. 
commande :
 sed -e "q" fichier 
resultat :
Un,
commande :
 sed -e "/\./=/" -e "/[A-Z]/w capitale" fichier 
r駸ultat ? l'馗ran :
Un,
2
deux.
Trois,
4
quatre. 

r駸ultat dans le fichier capitale :
Un,
Trois,


Obtenir l'aide m駑oire Unix au format pdf

AltStyle によって変換されたページ (->オリジナル) /