script avec commande SED - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 31-03-2008 à 18:16:36
déjà ton grep tu peux le simplifier en faisant
grep ^EVENT.*Normal$ |
Ensuite ton sed, tu peux utiliser le 'g' à la fin pour éviter de faire une boucle
sed s/\".*\"/\"string2\"/g |
sinon regarde du coté de awk mais je pense qu'en sed ca doit etre faisable sans pipe, juste en une ligne de sed
Marsh Posté le 31-03-2008 à 19:01:04
sed -i 's/\(^EVENT.*"\).*\(".*Normal$\)/\1STRING2\2/g' fichierinput.txt |
pour la compréhension http://www.grymoire.com/Unix/Sed.html#uh-4
Marsh Posté le 01-04-2008 à 09:57:02
slt, merci pour vos réponses.
malheureusement O'gure ta commande ne marche pas.
J'ai oublié de vous préciser que je suis sur HP-UX, et visiblement sed est différent...
Marsh Posté le 01-04-2008 à 10:06:06
Arf... fallait le préciser
Essaye de retrouver dans le manpage sur HP-UX les différentes parties. Mes sont normalement expliquées dans le manpage pour linux
Marsh Posté le 01-04-2008 à 11:21:07
bon en fait je l'ai transféré sur un linux pour faire le traitement et ça passe ^_^
merci O'gure
Marsh Posté le 01-04-2008 à 11:23:44
J'espères que tu as pris le temps de regarder le lien et que tu as compris comment fonctionne ma ligne. Je préfère expliquer que donner des réponses toutes faites à appliquer "bêtement".
Marsh Posté le 01-04-2008 à 11:49:15
'course I did !!
j'ai même mis ton lien en favoris ^_^
c'est juste que j'y connais pas gd chose en unix/linux, j'sais pas bien chercher mes infos encore...
Marsh Posté le 31-03-2008 à 17:34:27
slt à tous
j'ai un problème avec sed. J'ai un enorme fichier texte dans lequel j'aimerai changer la chaine de caractère contenue dans les guillemets. Seules les lignes qui commencent par "EVENT" et qui finissent par "Normal" sont concernées par cette modification.
ex : EVENT textetextetextexte "string1" Normal
si je tape ça :
ça marche il ne reste plus qu'à écrire dans le fichier. J'ai essayé de le caler dans un script mais ça passe pas. ($1 est le fichier à analyser)
Je ne trouve pas mon erreur. Pouvez-vous m'aider ?
je reste ouvert à toute autre manière de procéder