Re: sed remplacement de "=" par espace
Le 16/03/25 à 11:55, Michel Verdier a écrit :
Le 16 mars 2025 Benoît Barbier a écrit :
sed "s/[""'’`;:,.=]/ /g
Ici j'ai mal copié collé ls '"' de fin, mais je l'utilisais dans mes tests
sed "s/[""'’`;:,.=]/ /g"
Pourquoi ça trouve pas les "=" ?
Est-ce qu'il y aurait plusieurs signe "=" dans l'UTF8 ?
N'a pas fonctionné avec la chaîne = "abcd-=-efgh" copiée-collée du terminal.
Si je copie tel que tes bouts de texte ça plante sed à cause des " et `
non protégés. De mon côté ça donne ça :
$ echo "abcd-=-efgh" | sed "s/[\"'\`:,.=]/ /g"
abcd- -efgh
Donne la commande exacte que tu passes et du résultat si tu as toujours
un problème avec =
J'ai du foirer un truc en ajoutant "="
J'ai utilisé la réponse de @Basile STARYNKEVITCH
> Le problème est le traitement par le shell des arguments.
>
> Peut-être que sed 's/[\"\'\`\’\`;:.=]/ /g' pourrait mieux convenir.
>
> https://www.gnu.org/software/bash/manual/bash.html#Quoting
Mais je constate que je dois quand même mettre des " plutôt que des '
pour encadrer :
sed "s/[\"\'\`\’\`;:.=!#]/ /g"
Si non le terminal (zsh) me fait un :
dquote>
au lieux de considérer que c'est correctement fermé.
Ce qui compte c'est que ça marche, mais si je pouvais comprendre la
cause, je suis preneur d'une explication.
D'après ce que j'ai compris du lien ci-dessus au paragraphe 3.1.2.3
Double Quotes, pour préserve la valeur littérale, on a le choix entre
backslash ‘\’ et double quotes(‘"’)
Cf.
https://www.gnu.org/software/bash/manual/bash.html#Double-Quotes
Mais visiblement je dois faire backslash ‘\’ pour préserve la valeur
littérale et double quotes(‘"’) pour une fin de ligne correcte et éviter
que le terminal(zsh) ne passe en :
dquote>
C'est bien ça ?
Merci
--
Benoît
Reply to: