[SED]-Supprimer des codes ascii
blux
Messages postés
27106
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 août 2025
-
4 nov. 2004 à 11:33
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 -
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 -
A voir également:
- [SED]-Supprimer des codes ascii
- Code ascii - Guide
- Supprimer rond bleu whatsapp - Guide
- Supprimer une page word - Guide
- Supprimer pub youtube - Accueil - Streaming
- Fichier impossible à supprimer - Guide
7 réponses
asevere
Messages postés
13095
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
4 nov. 2004 à 16:27
4 nov. 2004 à 16:27
Salut
Ben j'ai pas de quoi tester, mais si tes caracteres sont \x5c etc.
il faut que l'expression reguliere soit du type \\x5C il me semble
non ?
++
...Mana mana
Tutudutu...
Ben j'ai pas de quoi tester, mais si tes caracteres sont \x5c etc.
il faut que l'expression reguliere soit du type \\x5C il me semble
non ?
++
...Mana mana
Tutudutu...
blux
Messages postés
27106
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 août 2025
3 359
4 nov. 2004 à 16:44
4 nov. 2004 à 16:44
Merci de t'être déplacé, je commençais à désespérer !
sed "s/\\x5c\\x0a//" fait que dalle !
En fait, je veux juste supprimer la fin d'une ligne qui contient \ et new-line (pour 'replier' la ligne suivante)
Je suis toujours sous AIX 4.3... :-)
A+ Blux
sed "s/\\x5c\\x0a//" fait que dalle !
En fait, je veux juste supprimer la fin d'une ligne qui contient \ et new-line (pour 'replier' la ligne suivante)
Je suis toujours sous AIX 4.3... :-)
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
asevere
Messages postés
13095
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
4 nov. 2004 à 16:48
4 nov. 2004 à 16:48
Oki :)
Donc c'est juste supprimer les retours chariots dans un fichier...
Maios en fait, je vois pas trop. :(
Quand tu affiche le fichierpar un bete cat, ça te donne quoi ?
tu vois les code hexa a la place des retour ?
...Mana mana
Tutudutu...
Donc c'est juste supprimer les retours chariots dans un fichier...
Maios en fait, je vois pas trop. :(
Quand tu affiche le fichierpar un bete cat, ça te donne quoi ?
tu vois les code hexa a la place des retour ?
...Mana mana
Tutudutu...
asevere
Messages postés
13095
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
4 nov. 2004 à 16:51
4 nov. 2004 à 16:51
Hum, ça me parait pas simplement réalisable avec sed :-/
ou j'oublies quelque chose...
...Mana mana
Tutudutu...
ou j'oublies quelque chose...
...Mana mana
Tutudutu...
blux
Messages postés
27106
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 août 2025
3 359
4 nov. 2004 à 17:04
4 nov. 2004 à 17:04
Ben en fait, je veux pas supprimer TOUS les retour chariots, seuleemnt ceux qui sont après un \, qui veut dire 'suite'.
Ma commande est dans un shell et c'est la sortie d'un sous-système que je veux reformater avant envoi sur l'écran via un more, ça donne un truc comme ça :
J'ai essayé avec TR de remplacer temporairement ces car par des car inutilisés puis de faire un sed pour les supprimer, mais je n'ai aucun résultat en sortie...
A+ Blux
Ma commande est dans un shell et c'est la sortie d'un sous-système que je veux reformater avant envoi sur l'écran via un more, ça donne un truc comme ça :
/usr/bin/nsradmin <<fin 2>&1 | sed "s/\\x5c\\x0a//" | more show last start;completion;name;status print type:NSR group;name:$GROUP quit fin
J'ai essayé avec TR de remplacer temporairement ces car par des car inutilisés puis de faire un sed pour les supprimer, mais je n'ai aucun résultat en sortie...
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
asevere
Messages postés
13095
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
4 nov. 2004 à 17:21
4 nov. 2004 à 17:21
Ben le probleme, c'est que sed travail sur des lignes,
Donc, on peut supprimer des lignes completes, mais en regrouper deux, là je vois pas :(
...Mana mana
Tutudutu...
Donc, on peut supprimer des lignes completes, mais en regrouper deux, là je vois pas :(
...Mana mana
Tutudutu...
blux
Messages postés
27106
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 août 2025
3 359
4 nov. 2004 à 17:25
4 nov. 2004 à 17:25
Si si, y peut joindre des lignes, j'ai fait des recherches sur le net, c'est possible... c'est juste une syntaxe de psychopathe...
Mais je ne veux joindre que certaines lignes, donc en supprimant le LF qui suit mon \ je joins de facto mes 2 lignes puisque je n'ai plus de saut de ligne...
J'ai bon ?
A+ Blux
Mais je ne veux joindre que certaines lignes, donc en supprimant le LF qui suit mon \ je joins de facto mes 2 lignes puisque je n'ai plus de saut de ligne...
J'ai bon ?
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
asevere
Messages postés
13095
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
>
blux
Messages postés
27106
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 août 2025
4 nov. 2004 à 17:43
4 nov. 2004 à 17:43
Voui, suffit juste de retirer le LF ;-)
Par contre, je suis preuneur de la syntax utilisée! :)
...Mana mana
Tutudutu...
Par contre, je suis preuneur de la syntax utilisée! :)
...Mana mana
Tutudutu...
blux
Messages postés
27106
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 août 2025
3 359
4 nov. 2004 à 17:28
4 nov. 2004 à 17:28
j'm'en vas, la suite demain...
A+ Blux
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
4 nov. 2004 à 18:38
4 nov. 2004 à 18:38
Salut,
Essaie ça :
Z'@+...che.
Essaie ça :
sed -e 's/\\x5c//' -e 's/\\x0a//'
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
blux
Messages postés
27106
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 août 2025
3 359
5 nov. 2004 à 09:21
5 nov. 2004 à 09:21
'marche pas...
ne suprime que les \, touche pas les sauts de lignes où qu'ils soient...
A+ Blux
ne suprime que les \, touche pas les sauts de lignes où qu'ils soient...
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
[Dal]
Messages postés
6205
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 juin 2025
1 105
4 nov. 2004 à 19:35
4 nov. 2004 à 19:35
Hello Blux,
La solution est peut-être de ne pas utiliser sed :)
Je stockerai le résultat de ta commande dans un fichier output.txt, et j'utiliserai vim pour traiter le contenu dans sa globalité :
vim -c "1,$ s/\\\n//g|wq" output.txt
Te donne un output.txt corrigé.
Celà suppose bien évidemment que le newline suive immédiatement le caractère \. Ceci dit, on doit pouvoir améliorer la syntaxe pour couvrir les cas où il y a des espaces, ou des caractères non-alphanumériques.
Sinon, juste une petite remarque... "\\" fonctionne très bien, même avec sed pour matcher "\", pas besoin de codes hexa.
En revanche, en ce qui concerne newline, mon "man sed" sur FreeBSD 4.9 me dit que sed ne va traiter que la ligne qu'on lui donne à l'exception du newline final, et qu'après traitement, il rajoute le newline... tu as donc au final toujours une ligne... ou alors j'ai raté un truc :)
Enfin, si tu trouves ta syntaxe de malade avec sed.. je suis preneur aussi :)
Dal
PS : merci à vi4ever qui a signalé cette utilisation de vi sur ce forum, il y a quelques jours. C'est une utiisation de vi très astucieuse !
La solution est peut-être de ne pas utiliser sed :)
Je stockerai le résultat de ta commande dans un fichier output.txt, et j'utiliserai vim pour traiter le contenu dans sa globalité :
vim -c "1,$ s/\\\n//g|wq" output.txt
Te donne un output.txt corrigé.
Celà suppose bien évidemment que le newline suive immédiatement le caractère \. Ceci dit, on doit pouvoir améliorer la syntaxe pour couvrir les cas où il y a des espaces, ou des caractères non-alphanumériques.
Sinon, juste une petite remarque... "\\" fonctionne très bien, même avec sed pour matcher "\", pas besoin de codes hexa.
En revanche, en ce qui concerne newline, mon "man sed" sur FreeBSD 4.9 me dit que sed ne va traiter que la ligne qu'on lui donne à l'exception du newline final, et qu'après traitement, il rajoute le newline... tu as donc au final toujours une ligne... ou alors j'ai raté un truc :)
Enfin, si tu trouves ta syntaxe de malade avec sed.. je suis preneur aussi :)
Dal
PS : merci à vi4ever qui a signalé cette utilisation de vi sur ce forum, il y a quelques jours. C'est une utiisation de vi très astucieuse !
asevere
Messages postés
13095
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
4 nov. 2004 à 19:57
4 nov. 2004 à 19:57
vi, je penchais plus pour autre chose que sed, mais j'aurais plutot regardé vers gwak qui travail sur des flux comme sed ;)
j'ai regardé vite fait, mais avec peu de moyens, je jeterai un oeil plus tard dessus :)
...Mana mana
Tutudutu...
j'ai regardé vite fait, mais avec peu de moyens, je jeterai un oeil plus tard dessus :)
...Mana mana
Tutudutu...
[Dal]
Messages postés
6205
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 juin 2025
1 105
4 nov. 2004 à 23:28
4 nov. 2004 à 23:28
Re tous :)
Asevere : C'est bien de GNU awk dont tu parles.. (lol.. j'ai cherché gwak dans Google et çà ne donne pas grand chose ;P).
Dans awk il semblerai que print et printf travaillent aussi sur des lignes, print ajoutant automatiquement newline et printf... l'ajoutant si tu inclues "\n" dans le descripteur du format de sortie... celà fait que tu dois utiliser printf avec ou sans \n, selon le cas.
Comme çà, celà devrait marcher :
blux :
- le "\\$" c'est pour matcher le "\" qui se trouve en fin de ligne... il n'a pas besoin de matcher \n, car awk traite aussi des lignes
- le premier printf rajoute un espace après le %s pour que tes lignes soient jointes avec un espace (si tu n'en veux pas, retire le)
C'est un peu compliqué mais celà évite d'avoir à créer un fichier temporaire, par rapport à la solution vi. Le feeling de asevere était bon :)
Dal
Asevere : C'est bien de GNU awk dont tu parles.. (lol.. j'ai cherché gwak dans Google et çà ne donne pas grand chose ;P).
Dans awk il semblerai que print et printf travaillent aussi sur des lignes, print ajoutant automatiquement newline et printf... l'ajoutant si tu inclues "\n" dans le descripteur du format de sortie... celà fait que tu dois utiliser printf avec ou sans \n, selon le cas.
Comme çà, celà devrait marcher :
cat output.txt | awk '{ if (sub(/\\$/, "")) printf "%s ", $0; else printf "%s\n", $0 }'
blux :
- le "\\$" c'est pour matcher le "\" qui se trouve en fin de ligne... il n'a pas besoin de matcher \n, car awk traite aussi des lignes
- le premier printf rajoute un espace après le %s pour que tes lignes soient jointes avec un espace (si tu n'en veux pas, retire le)
C'est un peu compliqué mais celà évite d'avoir à créer un fichier temporaire, par rapport à la solution vi. Le feeling de asevere était bon :)
Dal
asevere
Messages postés
13095
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
5 nov. 2004 à 00:18
5 nov. 2004 à 00:18
Vi bien sur, c'était gawk ;)
Je voyais moins lourd comme syntaxe:
...Mana mana
Tutudutu...
Je voyais moins lourd comme syntaxe:
...| awk 'BEGIN{ORS=""}; {n=sub(/\\$/, "", $0)}; {print $0}; !n{print "\n"}'En otant ce qui n'est pas nécéssaire:
...| awk 'BEGIN{ORS=""}; {n=sub(/\\$/, "")}; {print}; !n{print "\n"}'Bonne nuit tout le monde ;)
...Mana mana
Tutudutu...
blux
Messages postés
27106
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 août 2025
3 359
>
[Dal]
Messages postés
6205
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 juin 2025
5 nov. 2004 à 09:29
5 nov. 2004 à 09:29
Bon ben super-merci à tous ceux qui se sont déplacés !!!
Ce truc-là marche nickel :
C'est ça, l'unix propriétaire (AIX4.3) que je peux pas toucher et que les man sont pas installés...
Je respire...
A+ Blux
Ce truc-là marche nickel :
/usr/bin/nsradmin <<fin 2>&1 | awk '{ if (sub(/\\$/, "")) printf "%s", $0; else printf "%s\n", $0 }' | moreHeureusement que l'on peut le faire avec les outils standards, je n'ai pas vim, ni gawk...
C'est ça, l'unix propriétaire (AIX4.3) que je peux pas toucher et que les man sont pas installés...
Je respire...
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
blux
Messages postés
27106
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
28 août 2025
3 359
>
asevere
Messages postés
13095
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
5 nov. 2004 à 09:40
5 nov. 2004 à 09:40
Je confirme, ça marche aussi...
Merci !
A+ Blux
Merci !
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
asevere
Messages postés
13095
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
>
asevere
Messages postés
13095
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
5 nov. 2004 à 09:52
5 nov. 2004 à 09:52
:-)
De rien, ça m'as occupé un peu hier soir ;)
En passant, quand je parle de gawk(gwak!) et d'une maniere générale de tout les utilitaires qui commence par G, c'est en général un portage GNU de l'appli du même nom sans le G, donc la syntaxe et trés souvent identique (sauf version 0.2 de awk et 5.0 de gawk) :-)
++
...Mana mana
Tutudutu...
De rien, ça m'as occupé un peu hier soir ;)
En passant, quand je parle de gawk(gwak!) et d'une maniere générale de tout les utilitaires qui commence par G, c'est en général un portage GNU de l'appli du même nom sans le G, donc la syntaxe et trés souvent identique (sauf version 0.2 de awk et 5.0 de gawk) :-)
++
...Mana mana
Tutudutu...