Script : inserer un mot dans un fichier

Résolu
SAKDOSS -  
 SAKDOSS -
Bonjour tout le monde,

Je cherche une commande unix (ou une série de commandes) qui me permette d'insérer un mot dans un fichier de la forme suivante :

"
Alex
--------
Bidule
--------
Machin
--------
Truc
"

Le but étant de garder l'ordre alphabétique.
Par exemple, si j'ajoute "Hector" le résultat devrait être :

"
Alex
--------
Bidule
--------
Hector
--------
Machin
--------
Truc
"

Une petite idée ?
Configuration: Windows XP
Firefox 3.0.10

1 réponse

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Rajouter l'opton "-i" à la commande "sed" (dans la partie if ... then ... else ... fi) pour une modification du fichier original.
    [tmpfs]$ cat script.sh
    #! /bin/sh
    
    # Usage : script.sh param1 param2
    #       : param1 = Nom à rajouter
    #       : param2 = Nom du fichier
    
    #set -xv
    
    cible=$(sed '/^--*$/d;$a\
    '"$1"'
    ' $2 | sort | sed  "1,/$1/d;q")
    
    if [ "$cible" != "" ]
    then
    sed '/'"$cible"'/i\
    '"$1"'\
    --------
    ' $2
    else
    sed '$ i\
    --------\
    '"$1"'
    ' $2
    fi
    
    [tmpfs]$ cat plop
    "
    Alex
    --------
    Bidule
    --------
    Machin
    --------
    Truc
    "
    
    [tmpfs]$ ./script.sh Hector plop
    "
    Alex
    --------
    Bidule
    --------
    Hector
    --------
    Machin
    --------
    Truc
    "
    [tmpfs]$ ./script.sh Simon plop
    "
    Alex
    --------
    Bidule
    --------
    Machin
    --------
    Simon
    --------
    Truc
    "
    
    [tmpfs]$ ./script.sh Ursule plop
    "
    Alex
    --------
    Bidule
    --------
    Machin
    --------
    Truc
    --------
    Ursule
    "
    
    [tmpfs]$
    ;-))
    0
    1. SAKDOSS
       
      Merci bien ;)
      0