Exemples de scripts Sed |
Droits : modification de la sortie d'un ls -l (symbolique vers octal)
|
|
---|---|
Fichier script droits.sed :
# Nicolas Pons (19/11/2004) # Modifie l'affichage des droits Unix dans un `ls -l`. # La notation symbolique est remplacée par de l'octal. # # Usage : ls -l | sed -f [ce fichier] # Ajout d'une ligne d'entête 1i\ -------------- Début du traitement sed -------------- # Suppression de la ligne contenant "total" dans l'affichage # du `ls -l` /total/d # Conversion notation symbolique -> octal s/rwx/7/g s/rw-/6/g s/r-x/5/g s/r--/4/g s/-wx/3/g s/-w-/2/g s/--x/1/g s/---/0/g # Ajout d'une ligne en fin de traitement $a\ -------------- Fin du traitement sed --------------Exemple d'exécution : $ ls -l total 32 -rw-r--r-- 1 nicolas users 816 Mar 2 11:14 droits.awk -rw-r--r-- 1 nicolas users 570 Mar 2 11:13 droits.sed -rw-r--r-- 1 nicolas users 81 Dec 6 16:12 fic1 -rw-r--r-- 1 nicolas users 119 Dec 6 16:15 fic2 -rw-r--r-- 1 nicolas users 7 Dec 6 15:25 fichier2 lrwxrwxrwx 1 nicolas users 8 Dec 6 15:26 fichier3 -> fichier1 -rw-r--r-- 1 nicolas users 90 Mar 2 10:58 numeros drwxr-xr-x 2 nicolas users 4096 Dec 6 15:46 rep drwxr-xr-x 3 nicolas users 4096 Dec 6 16:52 ttt $ ls -l | sed -f droits.sed -------------- Début du traitement sed -------------- -644 1 nicolas users 816 Mar 2 11:14 droits.awk -644 1 nicolas users 570 Mar 2 11:13 droits.sed -644 1 nicolas users 81 Dec 6 16:12 fic1 -644 1 nicolas users 119 Dec 6 16:15 fic2 -644 1 nicolas users 7 Dec 6 15:25 fichier2 l777 1 nicolas users 8 Dec 6 15:26 fichier3 -> fichier1 -644 1 nicolas users 90 Mar 2 10:58 numeros d755 2 nicolas users 4096 Dec 6 15:46 rep d755 3 nicolas users 4096 Dec 6 16:52 ttt -------------- Fin du traitement sed -------------- |
Sélection : Affichage de la ligne n à la ligne m
incluses du contenu d'un fichier
|
Exemple : affichage des lignes 198 à 201 du fichier /etc/services
$ sed -n '198,201p' /etc/services ircs 994/tcp # IRC over SSL ircs 994/udp # IRC over SSL pop3s 995/tcp # POP-3 over SSL pop3s 995/udp # POP-3 over SSLCeci est plus rapide que d'utiliser les commandes head et tail :
$ time sed -n '198,201p' /etc/services ircs 994/tcp # IRC over SSL ircs 994/udp # IRC over SSL pop3s 995/tcp # POP-3 over SSL pop3s 995/udp # POP-3 over SSL real 0m0.006s user 0m0.000s sys 0m0.010s $ time head -201 /etc/services | tail +198 ircs 994/tcp # IRC over SSL ircs 994/udp # IRC over SSL pop3s 995/tcp # POP-3 over SSL pop3s 995/udp # POP-3 over SSL real 0m0.061s user 0m0.000s sys 0m0.060s |
|
Retour à l'accueil |