title: (sed/awk) How to convert a field-delimited (like a csv) file into a txt with fixed-sized tab-delimited columns?
body: <p>I have something like a csv file in which the field delimiter is "@". </p>
  
  <p>ID@Name@Surname@Age@Profession@Address</p>
  
  <pre>
  1254343123@John@Smith@24@Engineer@Washington
  23@Alexander@Kristofferson-Brown@Economic Advisor@Kent
  ...
  </pre>
  
  <p>I want to convert it into something more human-readable as in:</p>
  
  <pre>
  1254343123    John        Smith                  24    Engineer            Washington
  23            Alexander   Kristofferson-Brown    35    Economic Advisor    Kent
  </pre>
  
  <p>...where each column stars at a specific character.</p>
  
  <p>I have tried something that takes advantage of the TAB-size value and adds several TABs to the field:</p>
  
  <pre><code>sed -e "{/@[^@]\{32,\}@/s/@\([^@]*\)@/\t\1\t/g};{/@[^@]\{24,31\}@/s/@\([^@]*\)@/\t\1\t/g};{/@[^@]\{16,23\}@/s/@\([^@]*\)@/\t\1\t\t/g};{/@[^@]\{8,15\}@/s/@\([^@]*\)@/\t\1\t\t/g};{/@[^@]\{2,7\}@/s/@\([^@]*\)@/\t\1\t\t\t/g}"
  </code></pre>
  
  <p>...which does not work in all cases.</p>
  
  <p>Could somebody give me a hint as how to proceed?</p>
  
  <p>PS: My intention is to use mainly sed (a one-liner) or if sed just doesn't cut it, awk is OK.</p>