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 ?
A voir également:

1 réponse

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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
SAKDOSS
 
Merci bien ;)
0