Comment remplacer les crochets [] par SED?
J'ai une chaîne que je suis souhaitez supprimer la ponctuation.
J'ai commencé avec
sed 's/[[:punct:]]//g'
Mais j'ai eu des problèmes sur HP-UX ne pas aimer tout le temps, et quelques fois je voudrais obtenir un 0 et rien après un $
dans ma chaîne pour disparaître. J'ai donc décidé d'essayer de le faire manuellement.
J'ai le code suivant qui fonctionne sur tous mes signes de ponctuation qui m'intéresse, sauf que je n'arrive pas à mettre entre crochets "[]" à mon sed avec quoi que ce soit d'autre, sinon il n'a pas de remplacer quoi que ce soit, et je n'obtiens une erreur, donc je ne suis pas sûr de ce correctif.
De toute façon c'est ce que j'ai actuellement et que vous souhaitez ajouter []
.
sed 's/[-=+|~!@#$%^&*(){}:;'\'''\"''\`''\.''\/''\\']//g'
BTW, je suis en utilisant KSH sur Solaris, Redhat & HP
source d'informationauteur nitrobass24
Vous devez vous connecter pour publier un commentaire.
Vous devez placer les crochets tôt dans l'expression:
En plaçant l' ']' comme premier caractère immédiatement après le crochet ouvrant, il est interprété comme un membre du jeu de caractères plutôt que d'une parenthèse fermante. Placer un '[' n'importe où à l'intérieur de crochets en fait un membre de l'ensemble.
Pour ce jeu de caractères particulier, vous aussi vous devez traiter avec
-
spécialement, puisque vous n'êtes pas en train de construire une plage de caractères entre[
et=
. Donc, mettez la-
à la fin de la classe.Vous pouvez également spécifier les caractères que vous souhaitez conserver [inversion]:
Vous pouvez le faire manuellement:
Cela supprimer les 32 caractère de ponctuation, de l'ordre de quelques personnages est important:
-
devrait être à la fin comme ceci-]
[]
devrait être comme cela[][other characters]
'
doivent être échappés comme ça'\''
^
comme dans[^
[.
[=
[:
et à la fin avec.]
=]
:]
$]
ici vous pouvez avoir des explication de pourquoi tout ce qui http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_03_03
Voici le code final je me suis retrouvé avec
J'ai dû mettre
=
et-
à la fin.Peut être manipulé à l'aide de la regex technique de capture trop (par exemple: voici ci-dessous) :