Script sed

Un script sed est un fichier texte contenant une suite d'actions sed qui seront exécutées sur les lignes d'un ou plusieurs fichiers passés en paramètre ou sur l'entrée standard de la commande sed.

Toutes les actions sont évaluées et appliquées sur toutes les lignes du ou des fichiers.

Exemple :

$ nl script.sed
     1  1d
     2  2i\
     3  ------------------------\
     4  Liste des departements :\
     5  ------------------------
     6  s/^[0-9]\{2\}[ \t]*[0-9]\{2,3\}[ \t]*\([0-9]\{5\}\)[ \t]*[0-9][ \t]*\([-A-Z_\. ']\{1,\}\)[ \t]*.\{1,\}$/Code postal : \1\tDepartement : \2/
     7  s/^[0-9]\{2\}[ \t]*[0-9][A-B][ \t]*\([0-9][A-B][0-9]\{3\}\)[ \t]*[0-9][ \t]*\([-A-Z_\. ']\{1,\}\)[ \t]*.\{1,\}$/Code postal : \1\tDepartement : \2/
     8  $a\
     9  ---------------\
    10  Fin de la liste\
    11  ---------------
$

  • Ligne 1 : Suppression de la première ligne du fichier.
  • Ligne 2 : Affichage du contenu des lignes 3 à 5 du script avant la ligne 2 du fichier.
  • Ligne 6 : Mise en forme des données du fichier
  • Ligne 7 : Identique à la ligne 6 mais avec la prise en compte des départements de La Corse
  • Ligne 8 : Affichage du contenu des lignes 9 à 11 du script après la dernière ligne ($) du fichier.

$ sed -f script.sed depts2012.txt
------------------------
Liste des departements :
------------------------
Code postal : 01053     Departement : AIN
Code postal : 02408     Departement : AISNE
Code postal : 03190     Departement : ALLIER
Code postal : 04070     Departement : ALPES-DE-HAUTE-PROVENCE
Code postal : 05061     Departement : HAUTES-ALPES
Code postal : 06088     Departement : ALPES-MARITIMES
Code postal : 07186     Departement : ARDECHE
Code postal : 08105     Departement : ARDENNES
Code postal : 09122     Departement : ARIEGE
Code postal : 10387     Departement : AUBE
Code postal : 11069     Departement : AUDE
Code postal : 12202     Departement : AVEYRON
Code postal : 13055     Departement : BOUCHES-DU-RHONE
Code postal : 14118     Departement : CALVADOS
Code postal : 15014     Departement : CANTAL
Code postal : 16015     Departement : CHARENTE
Code postal : 17300     Departement : CHARENTE-MARITIME
Code postal : 18033     Departement : CHER
Code postal : 19272     Departement : CORREZE
Code postal : 2A004     Departement : CORSE-DU-SUD
Code postal : 2B033     Departement : HAUTE-CORSE
Code postal : 21231     Departement : COTE-D'OR
Code postal : 22278     Departement : COTES-D'ARMOR
Code postal : 23096     Departement : CREUSE
Code postal : 24322     Departement : DORDOGNE
Code postal : 25056     Departement : DOUBS
Code postal : 26362     Departement : DROME
Code postal : 27229     Departement : EURE
Code postal : 28085     Departement : EURE-ET-LOIR
Code postal : 29232     Departement : FINISTERE
Code postal : 30189     Departement : GARD
Code postal : 31555     Departement : HAUTE-GARONNE
Code postal : 32013     Departement : GERS
Code postal : 33063     Departement : GIRONDE
Code postal : 34172     Departement : HERAULT
Code postal : 35238     Departement : ILLE-ET-VILAINE
Code postal : 36044     Departement : INDRE
Code postal : 37261     Departement : INDRE-ET-LOIRE
Code postal : 38185     Departement : ISERE
Code postal : 39300     Departement : JURA
Code postal : 40192     Departement : LANDES
Code postal : 41018     Departement : LOIR-ET-CHER
Code postal : 42218     Departement : LOIRE
Code postal : 43157     Departement : HAUTE-LOIRE
Code postal : 44109     Departement : LOIRE-ATLANTIQUE
Code postal : 45234     Departement : LOIRET
Code postal : 46042     Departement : LOT
Code postal : 47001     Departement : LOT-ET-GARONNE
Code postal : 48095     Departement : LOZERE
Code postal : 49007     Departement : MAINE-ET-LOIRE
Code postal : 50502     Departement : MANCHE
Code postal : 51108     Departement : MARNE
Code postal : 52121     Departement : HAUTE-MARNE
Code postal : 53130     Departement : MAYENNE
Code postal : 54395     Departement : MEURTHE-ET-MOSELLE
Code postal : 55029     Departement : MEUSE
Code postal : 56260     Departement : MORBIHAN
Code postal : 57463     Departement : MOSELLE
Code postal : 58194     Departement : NIEVRE
Code postal : 59350     Departement : NORD
Code postal : 60057     Departement : OISE
Code postal : 61001     Departement : ORNE
Code postal : 62041     Departement : PAS-DE-CALAIS
Code postal : 63113     Departement : PUY-DE-DOME
Code postal : 64445     Departement : PYRENEES-ATLANTIQUES
Code postal : 65440     Departement : HAUTES-PYRENEES
Code postal : 66136     Departement : PYRENEES-ORIENTALES
Code postal : 67482     Departement : BAS-RHIN
Code postal : 68066     Departement : HAUT-RHIN
Code postal : 69123     Departement : RHONE
Code postal : 70550     Departement : HAUTE-SAONE
Code postal : 71270     Departement : SAONE-ET-LOIRE
Code postal : 72181     Departement : SARTHE
Code postal : 73065     Departement : SAVOIE
Code postal : 74010     Departement : HAUTE-SAVOIE
Code postal : 75056     Departement : PARIS
Code postal : 76540     Departement : SEINE-MARITIME
Code postal : 77288     Departement : SEINE-ET-MARNE
Code postal : 78646     Departement : YVELINES
Code postal : 79191     Departement : DEUX-SEVRES
Code postal : 80021     Departement : SOMME
Code postal : 81004     Departement : TARN
Code postal : 82121     Departement : TARN-ET-GARONNE
Code postal : 83137     Departement : VAR
Code postal : 84007     Departement : VAUCLUSE
Code postal : 85191     Departement : VENDEE
Code postal : 86194     Departement : VIENNE
Code postal : 87085     Departement : HAUTE-VIENNE
Code postal : 88160     Departement : VOSGES
Code postal : 89024     Departement : YONNE
Code postal : 90010     Departement : TERRITOIRE DE BELFORT
Code postal : 91228     Departement : ESSONNE
Code postal : 92050     Departement : HAUTS-DE-SEINE
Code postal : 93008     Departement : SEINE-SAINT-DENIS
Code postal : 94028     Departement : VAL-DE-MARNE
Code postal : 95500     Departement : VAL-D'OISE
Code postal : 97105     Departement : GUADELOUPE
Code postal : 97209     Departement : MARTINIQUE
Code postal : 97302     Departement : GUYANE
Code postal : 97411     Departement : LA REUNION
Code postal : 97608     Departement : MAYOTTE
---------------
Fin de la liste
---------------
$

Etiquettes: