430 votes

Chaîne Bash remplaçant certains caractères par un autre

J'ai une ficelle comme

 AxxBCyyyDEFzzLMN
 

Je veux remplacer tous les x et y et z avec _ afin que la sortie soit

 A_BC_DEF_LMN
 

Comment faire ça?

Je connais une série de

 echo "$string" | tr 'x' '_' | tr 'y' '_' 
 

fonctionnera, mais je veux le faire en une fois, sans utiliser de tuyaux

EDIT: Ce qui suit a travaillé

 echo "$string" | tr '[xyz]' '_'
 

511voto

jkasnicki Points 433
<pre><code></code><p><code></code><code></code><code></code><code></code><code></code>dans votre exemple.</p><pre><code></code></pre><p><code></code><code></code><code></code><code></code><code></code>dans votre exemple.</p></pre>

397voto

Matthew Flaschen Points 131723
orig="AxxBCyyyDEFzzLMN"
mod=${orig//[xyz]/_}

10voto

Michael Points 11
<pre><code></code><p>^ utiliser comme bon nombre d'entre eux que vous avez besoin, et vous pouvez faire votre propre cryptage de base</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X