title: Parsing a file containing non-printable ASCII characters
body: <p>I've got a file (possibly binary) that contains mostly non-printable ASCII characters as the output of the octal dump utility, below, shows.</p>
  
  <pre><code>od  -a MyFile.log 
  0000000  cr  nl esc   a soh nul esc   * soh   L soh nul nul nul nul nul
  0000020 nul soh etx etx etx soh nul nul nul nul nul nul nul nul nul nul
  0000040 nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul
  *
  0000100 nul nul nul nul nul soh etx etx etx nul nul nul nul nul nul nul
  0000120 nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul
  0000140 nul nul nul nul nul nul nul nul soh etx etx etx soh nul nul nul
  0000160 nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul
  0000200 nul nul nul nul nul nul nul nul nul nul nul soh etx etx etx etx
  0000220 etx soh etx etx etx etx etx etx etx soh etx etx etx etx etx etx
  0000240 etx soh etx etx etx etx etx soh soh soh soh soh nul nul nul nul
  0000260 nul nul nul nul nul nul nul nul nul nul nul nul nul nul etx etx
  0000300 nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul
  </code></pre>
  
  <p>I'd like to do the following:</p>
  
  <ol>
  <li><p>Parse or break the file into paragraph-like sections that start with either of the characters <code>esc</code>, <code>fs</code>, <code>gs</code> and <code>us</code> (ASCII numbers 27, 28, 29 and 31).</p></li>
  <li><p>Have the output file contain human-readable ASCII characters like octal dump.</p></li>
  <li><p>Store the result in a file.</p></li>
  </ol>
  
  <p>What would be the best way of doing this? I'd prefer to use UNIX/Linux shell utilities, e.g. grep, to perform this task instead of a C program.</p>
  
  <p>Thanks.</p>
  
  <p><strong>Edit</strong> I've used the octal dump utility command <code>od -A n -a -v MyFile.log</code> in order to remove the offsets from the file as follows: </p>
  
  <pre><code>  cr  nl esc   a soh nul esc   * soh   L soh nul nul nul nul nul
   nul soh etx etx etx soh nul nul nul nul nul nul nul nul nul nul
   nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul
   nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul
   nul nul nul nul nul soh etx etx etx nul nul nul nul nul nul nul
   nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul
   nul nul nul nul nul nul nul nul soh etx etx etx soh nul nul nul
   nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul
   nul nul nul nul nul nul nul nul nul nul nul soh etx etx etx etx
   etx soh etx etx etx etx etx etx etx soh etx etx etx etx etx etx
   etx soh etx etx etx etx etx soh soh soh soh soh nul nul nul nul
   nul nul nul nul nul nul nul nul nul nul nul nul nul nul etx etx
  </code></pre>
  
  <p>I'd like to proceed from or perhaps pipe this file to some other utility e.g. awk. </p>