Insérere des lignes dans des fichiers unix

Fermé
jf - 11 avril 2008 à 13:41
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 11 avril 2008 à 14:42
Bonjour,
J'ai une liste de fichiers.
quand je trouve un pattern du genre "Insert Into Table (26555, 5, 3, , 15,
0)"
je veux insérer une ligne dans le fichier, du genre: "Insert Into Table
(26555, 5, 3, , 93, 0)"
sed refuse l'option \a qui permet d'écrire une ligne de plus dans le
fichier!
Merci à ceux qui auront des idées



J'ai écrit ça: avec un fichier d'entree "entree.csv" (voir plus bas)
IFS="!"
if [ $# -lt 1 ]
then
echo "nom du fichier[.csv]"
exit
fi
for lg in `cat $1`
do

Code=`echo $lg | awk -F";" '{ printf "%s", $1 }'`
Chaine = `echo $lg | awk -F";" '{ printf "%s", $2 }'`
Fichier=`echo $lg | awk -F";" '{ printf "%s", $3 }'`


cat $Fichier | while read theline
do
echo "$theline" >> titi
if [ "$theline" = "Insert Into DISCOUNT_RESTRICTIONS Values ("$Code",
5, 3, 15, 0)" ]
then
echo "Insert Into DISCOUNT_RESTRICTIONS Values ("$Code", "$Chaine)" >>
titi
fi
done


done
mv titi $Fichier
----------------------------------------------------------------------
fichier d'entree "entree.csv"
26231; 5,3,93,0;g041000.sql;!
27753; 5,3,93,0;g041000.sql;!
26233; 5,3,93,0;g041001.sql;!
27754; 5,3,93,0;g041001.sql;!
26235; 5,3,93,0;g041002.sql;!
27755; 5,3,93,0;g041002.sql;!
26237; 5,3,93,0;g041003.sql;!
27756; 5,3,93,0;g041003.sql;!
26263; 5,3,93,0;g041027.sql;!
26264; 5,3,93,0;g041027.sql;!
26265; 5,3,93,0;g041027.sql;!
26266; 5,3,93,0;g041027.sql;!
26267; 5,3,93,0;g041027.sql;!
26268; 5,3,93,0;g041027.sql;!
26269; 5,3,93,0;g041039.sql;!
26270; 5,3,93,0;g041039.sql;!
26291; 5,3,93,0;g041048.sql;!



Et ça ne marche pas ! snif !
A voir également:

1 réponse

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
11 avril 2008 à 14:42
Salut,

Bizarre que la commande "sed" ne passe pas ;-\
Quelle version de "sed" et quel système utilises-tu ?

Pour ton script, essaie plutôt avec cette ligne :
if [ "$theline" = "Insert Into DISCOUNT_RESTRICTIONS Values ${Code}, 5, 3, 15, 0)" ] 
;-))
0