title: Cannot translate specific characters with tr utility
body: <p>Suppose I have a file named <em>doc</em> with content:</p>
  
  <pre><code>{}
  []
  </code></pre>
  
  <p>Now I want to translate all the '{' and '[' into '(' and '}' and ']' into ')'. So far, I can translate '{}' and '[' correctly, but I can't translate ']', using this shell command:</p>
  
  <pre><code>cat doc | tr [\[] [\(] | tr [\{] [\(] | tr [\}] [\)] | tr [\]] [\)] | cat
  </code></pre>
  
  <p>The output is:</p>
  
  <pre><code>()
  (]
  </code></pre>
  
  <p>So far, it can translate other character, except for ']'. Do you know why?</p>
  
  <p>This is a shell exercise, which asks to translate all '{}' and '[]' in a .c file into '()'. I just want to simply it here.</p>