Supprimer chaîne de caractères entre <>
Résolu/Fermé
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
-
13 janv. 2017 à 18:10
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024 - 17 janv. 2017 à 15:36
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024 - 17 janv. 2017 à 15:36
A voir également:
- Supprimer chaîne de caractères entre <>
- Caractères ascii - Guide
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractères spéciaux clavier azerty - Guide
5 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
13 janv. 2017 à 19:22
13 janv. 2017 à 19:22
Salut,
$ sed -f script.sed fich
bucket-ev-srv01;1856;GB;26000483
bucket-ev-srv02;1783;GB;33156887
bucket-cas;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;0;GB;8
bucket-ev-jrn;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;523;GB;9201066
$ cat script.sed
#n
:z
$ bx
N
/\n$/! bz
:x
s/<[^>]*>//g
s/\n/;/g
:w
s/;$//
t w
p
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
16 janv. 2017 à 15:42
16 janv. 2017 à 15:42
bonjour,
Est-il possible de convertir le script sed en ligne de commande et avoir une explication car à part s/<[^>]*>//g, je ne comprends pas le reste.
MErci! ;-)
Est-il possible de convertir le script sed en ligne de commande et avoir une explication car à part s/<[^>]*>//g, je ne comprends pas le reste.
MErci! ;-)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
16 janv. 2017 à 17:17
16 janv. 2017 à 17:17
# n(ou -n version en ligne)
N'afficher que sur demande (commande p en fin de script)
:z
On pose une étiquette nommée "z"
$ bx
Si dernière ligne (représentée par le signe $), se brancher sur l'étiquette nommée "x"
N
On ajoute la ligne suivante à l'espace de travail
/\n$/! bz
Si l'espace de travail ne se finit pas (! exprime la négation) par un caractère de saut de ligne (\n), on se branche (commande b) à l'étiquette nommée "z". Èquivalent d'une boucle.
:x
On pose une étiquette nommée "x"
s/<[^>]*>//g
Commande exécutée si et seulement si l'espace de travail se finit par un caractère de saut de ligne (\n). On supprime tout ce qui se trouve entre les chevrons, chevrons compris.
s/\n/;/g
On remplace les saut de ligne par des points virgules
:w
On pose une étiquette nommée "w"
s/;$//
On supprime un point virgule se trouvant en fin de ligne ($ dans une expression de substitution, représentant la fin de ligne)
t w
Si et seulement si (commande "t") la suppression a réussi, on se branche à l'étiquette "w" et on recommence.
p
On affiche sur la sortie standard le résultat.
Quant à la commande sur une seule ligne, ça donne :
N'afficher que sur demande (commande p en fin de script)
:z
On pose une étiquette nommée "z"
$ bx
Si dernière ligne (représentée par le signe $), se brancher sur l'étiquette nommée "x"
N
On ajoute la ligne suivante à l'espace de travail
/\n$/! bz
Si l'espace de travail ne se finit pas (! exprime la négation) par un caractère de saut de ligne (\n), on se branche (commande b) à l'étiquette nommée "z". Èquivalent d'une boucle.
:x
On pose une étiquette nommée "x"
s/<[^>]*>//g
Commande exécutée si et seulement si l'espace de travail se finit par un caractère de saut de ligne (\n). On supprime tout ce qui se trouve entre les chevrons, chevrons compris.
s/\n/;/g
On remplace les saut de ligne par des points virgules
:w
On pose une étiquette nommée "w"
s/;$//
On supprime un point virgule se trouvant en fin de ligne ($ dans une expression de substitution, représentant la fin de ligne)
t w
Si et seulement si (commande "t") la suppression a réussi, on se branche à l'étiquette "w" et on recommence.
p
On affiche sur la sortie standard le résultat.
Quant à la commande sur une seule ligne, ça donne :
sed -n ':z;$ bx;N;/\n$/! bz;:x;s/<[^>]*>//g;s/\n/;/g;:w;s/;$//;tw;p'
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
>
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
16 janv. 2017 à 17:46
16 janv. 2017 à 17:46
Merci mais malheureusement, ça ne fonctionne pas.
Je suis sous AIX.
Je suis sous AIX.
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
>
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
16 janv. 2017 à 18:02
16 janv. 2017 à 18:02
sed: 0602-417 The label :z;$ bx;N;/\n$/! bz;:x;s/<[^>]*>//g;s/\n/;/g;:w;s/;$//;tw;p is greater than eight characters.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
>
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
16 janv. 2017 à 18:14
16 janv. 2017 à 18:14
Je suis sous AIX.Ben ça fallait le dire d'entrée ;-(
Essaye avec le fichier de script.
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
17 janv. 2017 à 13:26
17 janv. 2017 à 13:26
bonjour,
Je pensais que le sed était le même sur toutes les plateformes
ça ne fonctionne pas mieux avec le script mais je vais me servir d'une partie du code. MErci.
Je pensais que le sed était le même sur toutes les plateformes
ça ne fonctionne pas mieux avec le script mais je vais me servir d'une partie du code. MErci.
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 622
17 janv. 2017 à 13:57
17 janv. 2017 à 13:57
hello
avec awk
avec awk
$ awk -F "[<>]" 'n++ && $3 "" {printf ";"} $3 "" {printf $3} !NF {print ""; n=0} END {print ""}' fichier
bucket-ev-srv01;1856;GB;26000483
bucket-ev-srv02;1783;GB;33156887
bucket-cas;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;0;GB;8
bucket-ev-jrn;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;523;GB;9201066
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
Modifié par bob737 le 17/01/2017 à 14:23
Modifié par bob737 le 17/01/2017 à 14:23
Merci! on est pas loin . C'est presque bon mais j'obtiens le résultat sur une ligne.
;ns_ev_001;6595;GB;109563059;2017-01-17T13:08:20Z;bucket-cas;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;GB;8;bucket-ev-jrn;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;552;GB;9706053;bucket-ev-srv01;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;2114;GB;29619241;bucket-ev-srv02;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;1998;GB;36825032;bucket-ev-srv03;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;1931;GB;33412725
Désolé, C'est ma faute car le source ne doit être correcte même si je ne vois pas de différence....
La source ci-dessous.
Fichier xml source : http://dl.free.fr/getfile.pl?file=/9AQ08FId
;ns_ev_001;6595;GB;109563059;2017-01-17T13:08:20Z;bucket-cas;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;GB;8;bucket-ev-jrn;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;552;GB;9706053;bucket-ev-srv01;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;2114;GB;29619241;bucket-ev-srv02;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;1998;GB;36825032;bucket-ev-srv03;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;1931;GB;33412725
Désolé, C'est ma faute car le source ne doit être correcte même si je ne vois pas de différence....
La source ci-dessous.
Fichier xml source : http://dl.free.fr/getfile.pl?file=/9AQ08FId
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 622
Modifié par dubcek le 17/01/2017 à 14:48
Modifié par dubcek le 17/01/2017 à 14:48
je m'étais basé sur la ligne vide pour la fin de ligne
c'est à <bucket_billing_info> qu'il faut changer de ligne ?
c'est à <bucket_billing_info> qu'il faut changer de ligne ?
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
>
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
17 janv. 2017 à 14:53
17 janv. 2017 à 14:53
oui. d'ailleurs on ajoutant sed 's/\<bucket_billing_info>/ /g' en début de ta commande, j'arrive presque à ce que je veux. J'ai juste un saut de ligne en trop entre chaque ligne résultat.
Merci de ton aide.
Merci de ton aide.
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
>
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
17 janv. 2017 à 15:04
17 janv. 2017 à 15:04
Je ne suis pas loin. Le première ligne n'est pas correct.
;ns_ev_001;6596;GB;109580412;2017-01-17T14:00:52Z
bucket-cas;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;GB;8
bucket-ev-jrn;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;553;GB;9723340
bucket-ev-srv01;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;2114;GB;29619261
bucket-ev-srv02;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;1998;GB;36825078
bucket-ev-srv03;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;1931;GB;33412725
;ns_ev_001;6596;GB;109580412;2017-01-17T14:00:52Z
bucket-cas;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;GB;8
bucket-ev-jrn;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;553;GB;9723340
bucket-ev-srv01;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;2114;GB;29619261
bucket-ev-srv02;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;1998;GB;36825078
bucket-ev-srv03;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;1931;GB;33412725
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 622
17 janv. 2017 à 15:13
17 janv. 2017 à 15:13
comme ca?
$ awk -F "[<>]" '$3 "" {if(n++)printf ";"; printf $3} /bucket_billi/ {print ""; n=0} ' fichier | awk NF
ns_ev_001;6595;GB;109563059;2017-01-17T13:08:20Z
bucket-cas;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;0;GB;8
bucket-ev-jrn;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;552;GB;9706053
bucket-ev-srv01;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;2114;GB;29619241
bucket-ev-srv02;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;1998;GB;36825032
bucket-ev-srv03;urn:storageos:ReplicationGroupInfo:eea19191-5584-4c65-958b-cc6826f7c588:global;1931;GB;33412725
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
>
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
17 janv. 2017 à 15:36
17 janv. 2017 à 15:36
Nickel!! Un grand merci!