Remplacement chaine de caractère
Fermé
NBK59000
Messages postés
11
Date d'inscription
mercredi 1 février 2012
Statut
Membre
Dernière intervention
1 février 2012
-
1 févr. 2012 à 09:56
NBK59000 Messages postés 11 Date d'inscription mercredi 1 février 2012 Statut Membre Dernière intervention 1 février 2012 - 1 févr. 2012 à 11:38
NBK59000 Messages postés 11 Date d'inscription mercredi 1 février 2012 Statut Membre Dernière intervention 1 février 2012 - 1 févr. 2012 à 11:38
A voir également:
- Remplacement chaine de caractère
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Caractère spéciaux mac clavier - Guide
- Chaine tnt gratuite sur mobile - Guide
4 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
1 févr. 2012 à 10:01
1 févr. 2012 à 10:01
Salut,
Quel système ?
Quel shell ?
Quelle version de "sed" ?
La 1ère occurrence de chaque la ligne ou sur l'ensemble du fichier ?
Quel système ?
Quel shell ?
Quelle version de "sed" ?
La 1ère occurrence de chaque la ligne ou sur l'ensemble du fichier ?
NBK59000
Messages postés
11
Date d'inscription
mercredi 1 février 2012
Statut
Membre
Dernière intervention
1 février 2012
1 févr. 2012 à 10:03
1 févr. 2012 à 10:03
La premiere occurence dans le fichier
C'est sur un AIX 5.3
Je ne connais pas la version de sed
C'est sur un AIX 5.3
Je ne connais pas la version de sed
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
1 févr. 2012 à 10:10
1 févr. 2012 à 10:10
Ok.
Est-ce que 'date "+%Y%m%d"' renvoie bien le bon format sous ton AIX ?
Que renvoie "sed --version" ?
Est-ce que 'date "+%Y%m%d"' renvoie bien le bon format sous ton AIX ?
Que renvoie "sed --version" ?
NBK59000
Messages postés
11
Date d'inscription
mercredi 1 février 2012
Statut
Membre
Dernière intervention
1 février 2012
1 févr. 2012 à 10:16
1 févr. 2012 à 10:16
date "+%Y%m%d
renvoie
20120201 -> OK
et sed -V et sed --version ne fonctionnent pas ...
sed: illegal option -- V
Usage: sed [-n] [-u] Script [File ...]
sed [-n] [-u] [-e Script] ... [-f Script_file] ... [File ...]
renvoie
20120201 -> OK
et sed -V et sed --version ne fonctionnent pas ...
sed: illegal option -- V
Usage: sed [-n] [-u] Script [File ...]
sed [-n] [-u] [-e Script] ... [-f Script_file] ... [File ...]
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
1 févr. 2012 à 10:28
1 févr. 2012 à 10:28
Ok.
Peux-tu tester cette commande "sed" sur un de tes fichiers et me dire si le remplacement de la 1ère occurrence est effectif à l'écran ?
Peux-tu tester cette commande "sed" sur un de tes fichiers et me dire si le remplacement de la 1ère occurrence est effectif à l'écran ?
sed '0,/<NumCde>000000000/{s//<NumCde>/;}'
NBK59000
Messages postés
11
Date d'inscription
mercredi 1 février 2012
Statut
Membre
Dernière intervention
1 février 2012
1 févr. 2012 à 10:32
1 févr. 2012 à 10:32
Non, ca ne marche pas ...
Par contre, j'ai réussi en faisant :
sed -e 's/<NumCde>000000000/<NumCde>/g' < my_fic.xml > temp.xml
mais je suis obligé de passer par un fichier temporaire temp.xml
Par contre, j'ai réussi en faisant :
sed -e 's/<NumCde>000000000/<NumCde>/g' < my_fic.xml > temp.xml
mais je suis obligé de passer par un fichier temporaire temp.xml
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
1 févr. 2012 à 10:34
1 févr. 2012 à 10:34
Oui mais cette commande modifie toutes les occurrences et non pas seulement la première ;-\
NBK59000
Messages postés
11
Date d'inscription
mercredi 1 février 2012
Statut
Membre
Dernière intervention
1 février 2012
1 févr. 2012 à 10:36
1 févr. 2012 à 10:36
meme en supprimant le/g ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
1 févr. 2012 à 10:39
1 févr. 2012 à 10:39
Ben oui le "g" c'est pour substituer toutes les occurrences d'une même ligne.
Essaie comme ça alors :
Essaie comme ça alors :
sed -e '1,/<NumCde>000000000/{s/<NumCde>000000000/<NumCde>/;}'
NBK59000
Messages postés
11
Date d'inscription
mercredi 1 février 2012
Statut
Membre
Dernière intervention
1 février 2012
1 févr. 2012 à 11:01
1 févr. 2012 à 11:01
ksh: syntax error: '<' unexpected
:/
Par contre, ca simplifierait les choses de prendre toutes les occurrences du fichier ?
Au pire, je prends le risque ...
Il faudrait un truc du genre ..;
for fic in 'find . -name "*xml"'
do
sed -e 's/<NumCde>000000000/<NumCde>/g' < $fic > temp.xml
mv temp.xml $fic
done
aux repertoires près ..
mais le $fic n'est pas interpreté dans le sed ....
:/
Par contre, ca simplifierait les choses de prendre toutes les occurrences du fichier ?
Au pire, je prends le risque ...
Il faudrait un truc du genre ..;
for fic in 'find . -name "*xml"'
do
sed -e 's/<NumCde>000000000/<NumCde>/g' < $fic > temp.xml
mv temp.xml $fic
done
aux repertoires près ..
mais le $fic n'est pas interpreté dans le sed ....
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
1 févr. 2012 à 11:05
1 févr. 2012 à 11:05
Attends, on va d'abord essayer autre chose ;-))
ed bidon.xml <<EOF /<NumCde>/ s/<NumCde>000000000/<NumCde>/ . w EOF
NBK59000
Messages postés
11
Date d'inscription
mercredi 1 février 2012
Statut
Membre
Dernière intervention
1 février 2012
1 févr. 2012 à 11:08
1 févr. 2012 à 11:08
Oui, ca ca marche :))
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
1 févr. 2012 à 11:20
1 févr. 2012 à 11:20
Le problème maintenant c'est pour intégrer cette syntaxe avec "find" et son option "-exec" ;-((
NBK59000
Messages postés
11
Date d'inscription
mercredi 1 février 2012
Statut
Membre
Dernière intervention
1 février 2012
1 févr. 2012 à 11:22
1 févr. 2012 à 11:22
moi je pensais à un truc du genre :
for fic in 'find . -name "*.xml'
do
ed $fic <<EOF
...
EOF
done
mais ca marche pô ...
for fic in 'find . -name "*.xml'
do
ed $fic <<EOF
...
EOF
done
mais ca marche pô ...
NBK59000
Messages postés
11
Date d'inscription
mercredi 1 février 2012
Statut
Membre
Dernière intervention
1 février 2012
1 févr. 2012 à 11:31
1 févr. 2012 à 11:31
Pour l'instant y'a que :
sed -e 's/<NumCde>000000000/<NumCde>/1' < my_fic.xml > temp.xml
qui fonctionne, mais impossible d'utiliser une variable pour remplacer my_fic.xml ...
sed -e 's/<NumCde>000000000/<NumCde>/1' < my_fic.xml > temp.xml
qui fonctionne, mais impossible d'utiliser une variable pour remplacer my_fic.xml ...