![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| AIX Forum d'entraide sur le système AIX. Avant de poster -> FAQ AIX et cours AIX |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité régulier
![]() Date d'inscription: juin 2008
Localisation: Ile de France
Messages: 10
|
Bonjour,
On vient de me poser une colle et séche dessus depuis 2 heures Voilà le problème, on souhaite manipuler dans un shell (en ksh) un fichier succeptible de contenir X occurences d'une chaine de caractères dans chaque enregistrement mais on souhaite ne modifier que la première que l'on rencontre sans toucher aux autres qui suivront. La commande sed semblait toute indiquée mais voilà elle modifie une ocurrence dans chaque enregistrement et là c'est pas bon du tout.... Je suis aller voir si awk pouvait m'aider mais là non plus je ne vois rien qui fait mon bonheur Y-a-t-il une commande qui saurait voir le fichier non pas comme une suite d'enregistrements mais comme un bloc unique à traiter ? Merci d'avance |
|
|
|
|
|
#2 (permalink) |
|
Futur Membre du Club
![]() Date d'inscription: juillet 2007
Messages: 35
|
J'ai une ruse : tu appelles le support IBM, et tu leurs dis que dans la man page de sed il est écrit :
Code :
"s/pattern/replacement/flags
Substitutes the replacement string for the first occurrence of the
pattern parameter in the pattern space. Any character that is
displayed after the s subcommand can substitute for the / (slash)
separator except for the space or new-line character.
See the "Pattern Matching" section of the ed command.
The value of the flags variable must be zero or more of:
g
Substitutes all non-overlapping instances of the pattern
parameter rather than just the first one.
n
Substitutes for the n-th occurrence only of the pattern
parameter.
"
|
|
|
|
|
|
#4 (permalink) |
|
Invité régulier
![]() Date d'inscription: juin 2008
Localisation: Ile de France
Messages: 10
|
LOL, je reviens de vacances et j'ai adoré ta réponse Letis, dès que j'ai le temps j'essaie d'appeler IBM et promis je donne leur réponse s'ils ont une solution
![]() Pourquoi AIX ??? bah, parce que j'ai ce problème sur un système en AIX 5.3.3 tout simplement .... |
|
|
|
|
|
#5 (permalink) | |
|
Membre chevronné
![]() Date d'inscription: juin 2008
Messages: 643
|
Citation:
- W |
|
|
|
|
|
|
#6 (permalink) |
|
Invité régulier
![]() Date d'inscription: juin 2008
Localisation: Ile de France
Messages: 10
|
Je viens de tester votre formule magique wizstricks mais elle n'a aucun effet :
# sed '0,/123/s//XXXXXXXX/' z toto blabalabla mdldmd123 &"('123 1234 &22345 totototo toto toto blabalabla mdldmd123 &"('123 1234 &22345 totototo toto toto blabalabla mdldmd123 &"('123 1234 &22345 totototo toto La mienne au moins changeait la 1 ere occurence sur chaque ligne ... #sed 's/123/XXXXXXXX/1' z toto blabalabla mdldmdXXXXXXXX &"('123 1234 &22345 totototo toto toto blabalabla mdldmdXXXXXXXX &"('123 1234 &22345 totototo toto toto blabalabla mdldmdXXXXXXXX &"('123 1234 &22345 totototo toto Aurais-je mal compris votre syntaxe ? |
|
|
|
|
|
#7 (permalink) |
|
Membre chevronné
![]() Date d'inscription: juin 2008
Messages: 643
|
J'utilise GNU sed version 4.1.5 (sur Ubuntu)
sur le fichier, contenant: Code :
! cat toto.txt aba 123 abc 456 xxx 789 zzz 123 yz 23 jksdg sdh 123 789 ss Code :
! sed '0,/123/s//zzzz/' toto.txt aba zzzz abc 456 xxx 789 zzz 123 yz 23 jksdg sdh 123 789 ss C'est peut être maintenant qu'AIX peut être interressant. - W |
|
|
|
|
|
#8 (permalink) |
|
Invité régulier
![]() Date d'inscription: juin 2008
Localisation: Ile de France
Messages: 10
|
Malheureusement pour moi, nos systémes n'ont pas GNU d'installé (pour l'instant refus de s'interesser à Linux et autres produits pas cher du marché, nos têtes pensantes aiment mieux faire une coupe franche dans le petit personnel plutôt que de baisser le prix des factures de maintenance logiciel.... faut bien expliquer qu'on a trop de frais
).Sinon, oui, c'est tout à fait cela que j'aurai voulu obtenir... Dommage |
|
|
|
![]() |
![]() |
||
Comment changer une chaine de caractères et une seule ?
|
||
| Outils de la discussion | |
|
|