<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Samuel Lampa</title>
    <description>The latest articles on DEV Community by Samuel Lampa (@sml).</description>
    <link>https://dev.to/sml</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4019175%2Fff3dbe18-88ca-4596-a656-b70c177a5fd1.jpg</url>
      <title>DEV Community: Samuel Lampa</title>
      <link>https://dev.to/sml</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sml"/>
    <language>en</language>
    <item>
      <title>How to align columnar output in the terminal</title>
      <dc:creator>Samuel Lampa</dc:creator>
      <pubDate>Tue, 07 Jul 2026 09:46:42 +0000</pubDate>
      <link>https://dev.to/sml/how-to-align-columnar-output-in-the-terminal-300p</link>
      <guid>https://dev.to/sml/how-to-align-columnar-output-in-the-terminal-300p</guid>
      <description>&lt;p&gt;In bioinformatics we are handling a lot of tabular data. Be it VCF files, tabular Blast output, or just creating a CSV or TSV samplesheet.&lt;/p&gt;

&lt;p&gt;Actually, one of my favorite tabular formats is by using SeqKit to convert Fasta or FastQ files to tabular format, as this allows to do various filtering operations &lt;em&gt;by row&lt;/em&gt;, using standard unix tools if so wished.&lt;/p&gt;

&lt;p&gt;Scrolling through this type of data in the terminal can be messy to say the least though.&lt;/p&gt;

&lt;p&gt;Although CSVs can of course be imported into a spreadsheet software for viewing, it would be very powerful to be able to view them comfortably right from the terminal, isn't it?&lt;/p&gt;

&lt;p&gt;To take one example that fits within the code window of a blog post, let's take a selected set of columns from the CSV output from the Mykrobe tool. And to make it emulate another common problem with many csv formats, let's also use &lt;code&gt;tr&lt;/code&gt; to convert the &lt;code&gt;_&lt;/code&gt;:s in the headers into real spaces (Mykrobe does not do this, but many other tools do):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;SOME_SAMPLE.csv | &lt;span class="nb"&gt;cut&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt;, &lt;span class="nt"&gt;-f&lt;/span&gt; 2,3,10,14,15,17,18 | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="s1"&gt;'_'&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; selection.csv
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;selection.csv
&lt;span class="s2"&gt;"drug"&lt;/span&gt;,&lt;span class="s2"&gt;"susceptibility"&lt;/span&gt;,&lt;span class="s2"&gt;"kmer size"&lt;/span&gt;,&lt;span class="s2"&gt;"phylo group per covg"&lt;/span&gt;,&lt;span class="s2"&gt;"species per covg"&lt;/span&gt;,&lt;span class="s2"&gt;"phylo group depth"&lt;/span&gt;,&lt;span class="s2"&gt;"species depth"&lt;/span&gt;
&lt;span class="s2"&gt;"Amikacin"&lt;/span&gt;,&lt;span class="s2"&gt;"S"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Capreomycin"&lt;/span&gt;,&lt;span class="s2"&gt;"S"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ciprofloxacin"&lt;/span&gt;,&lt;span class="s2"&gt;"S"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Delamanid"&lt;/span&gt;,&lt;span class="s2"&gt;"S"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ethambutol"&lt;/span&gt;,&lt;span class="s2"&gt;"S"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ethionamide"&lt;/span&gt;,&lt;span class="s2"&gt;"S"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Isoniazid"&lt;/span&gt;,&lt;span class="s2"&gt;"R"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Kanamycin"&lt;/span&gt;,&lt;span class="s2"&gt;"S"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Levofloxacin"&lt;/span&gt;,&lt;span class="s2"&gt;"S"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Linezolid"&lt;/span&gt;,&lt;span class="s2"&gt;"S"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Moxifloxacin"&lt;/span&gt;,&lt;span class="s2"&gt;"S"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ofloxacin"&lt;/span&gt;,&lt;span class="s2"&gt;"S"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Pyrazinamide"&lt;/span&gt;,&lt;span class="s2"&gt;"S"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Rifampicin"&lt;/span&gt;,&lt;span class="s2"&gt;"S"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Streptomycin"&lt;/span&gt;,&lt;span class="s2"&gt;"R"&lt;/span&gt;,&lt;span class="s2"&gt;"21"&lt;/span&gt;,&lt;span class="s2"&gt;"99.672"&lt;/span&gt;,&lt;span class="s2"&gt;"98.428"&lt;/span&gt;,&lt;span class="s2"&gt;"372"&lt;/span&gt;,&lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, here it is really not that easy to even follow individual columns, much less link headers to columns.&lt;/p&gt;

&lt;p&gt;To improve the situation here a bit, we can convert the commas to tabs, using the &lt;code&gt;tr&lt;/code&gt; command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;selection.csv | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="s2"&gt;","&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="s2"&gt;"drug"&lt;/span&gt;  &lt;span class="s2"&gt;"susceptibility"&lt;/span&gt;        &lt;span class="s2"&gt;"kmer size"&lt;/span&gt;     &lt;span class="s2"&gt;"phylo group per covg"&lt;/span&gt;  &lt;span class="s2"&gt;"species per covg"&lt;/span&gt;      &lt;span class="s2"&gt;"phylo group depth"&lt;/span&gt;     &lt;span class="s2"&gt;"species depth"&lt;/span&gt;
&lt;span class="s2"&gt;"Amikacin"&lt;/span&gt;      &lt;span class="s2"&gt;"S"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Capreomycin"&lt;/span&gt;   &lt;span class="s2"&gt;"S"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ciprofloxacin"&lt;/span&gt; &lt;span class="s2"&gt;"S"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Delamanid"&lt;/span&gt;     &lt;span class="s2"&gt;"S"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ethambutol"&lt;/span&gt;    &lt;span class="s2"&gt;"S"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ethionamide"&lt;/span&gt;   &lt;span class="s2"&gt;"S"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Isoniazid"&lt;/span&gt;     &lt;span class="s2"&gt;"R"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Kanamycin"&lt;/span&gt;     &lt;span class="s2"&gt;"S"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Levofloxacin"&lt;/span&gt;  &lt;span class="s2"&gt;"S"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Linezolid"&lt;/span&gt;     &lt;span class="s2"&gt;"S"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Moxifloxacin"&lt;/span&gt;  &lt;span class="s2"&gt;"S"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ofloxacin"&lt;/span&gt;     &lt;span class="s2"&gt;"S"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Pyrazinamide"&lt;/span&gt;  &lt;span class="s2"&gt;"S"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Rifampicin"&lt;/span&gt;    &lt;span class="s2"&gt;"S"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Streptomycin"&lt;/span&gt;  &lt;span class="s2"&gt;"R"&lt;/span&gt;     &lt;span class="s2"&gt;"21"&lt;/span&gt;    &lt;span class="s2"&gt;"99.672"&lt;/span&gt;        &lt;span class="s2"&gt;"98.428"&lt;/span&gt;        &lt;span class="s2"&gt;"372"&lt;/span&gt;   &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Well, now we at least can clearly follow individual columns. But the headers don't align that well.&lt;/p&gt;

&lt;p&gt;To fix this, what we can do is use the &lt;code&gt;column -t&lt;/code&gt; command, which will straighten up the columns for us nicely:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;selection.csv | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="s1"&gt;','&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt; |  column &lt;span class="nt"&gt;-t&lt;/span&gt;
&lt;span class="s2"&gt;"drug"&lt;/span&gt;           &lt;span class="s2"&gt;"susceptibility"&lt;/span&gt;  &lt;span class="s2"&gt;"kmer  size"&lt;/span&gt;     &lt;span class="s2"&gt;"phylo    group  per    covg"&lt;/span&gt;  &lt;span class="s2"&gt;"species  per  covg"&lt;/span&gt;  &lt;span class="s2"&gt;"phylo  group  depth"&lt;/span&gt;  &lt;span class="s2"&gt;"species  depth"&lt;/span&gt;
&lt;span class="s2"&gt;"Amikacin"&lt;/span&gt;       &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Capreomycin"&lt;/span&gt;    &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ciprofloxacin"&lt;/span&gt;  &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Delamanid"&lt;/span&gt;      &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ethambutol"&lt;/span&gt;     &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ethionamide"&lt;/span&gt;    &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Isoniazid"&lt;/span&gt;      &lt;span class="s2"&gt;"R"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Kanamycin"&lt;/span&gt;      &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Levofloxacin"&lt;/span&gt;   &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Linezolid"&lt;/span&gt;      &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Moxifloxacin"&lt;/span&gt;   &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ofloxacin"&lt;/span&gt;      &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Pyrazinamide"&lt;/span&gt;   &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Rifampicin"&lt;/span&gt;     &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Streptomycin"&lt;/span&gt;   &lt;span class="s2"&gt;"R"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;   &lt;span class="s2"&gt;"99.672"&lt;/span&gt;  &lt;span class="s2"&gt;"98.428"&lt;/span&gt;  &lt;span class="s2"&gt;"372"&lt;/span&gt;  &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, &lt;code&gt;column -t&lt;/code&gt; does not handle this situation very well, as it is separating columns based on plain spaces by default, something we have in our headers in many real world files.&lt;/p&gt;

&lt;p&gt;To fix this, what we can do is make sure that &lt;code&gt;column -t&lt;/code&gt; only separates based on real TAB characters. The problem with this is that specifying a proper TAB character on the commandline is not always straight-forward. Some tools, such as &lt;code&gt;awk&lt;/code&gt; accepts a normal &lt;code&gt;"\t"&lt;/code&gt; string for this, e.g. &lt;code&gt;awk -F"\t"&lt;/code&gt; to tell awk to use TAB as a field separator, but &lt;code&gt;column&lt;/code&gt; doesn't do that. Instead we need to specify it using &lt;code&gt;$'\t'&lt;/code&gt;, which should  work in most newer Linuxes.&lt;/p&gt;

&lt;p&gt;So all in all, we can do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;selection.csv | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="s1"&gt;','&lt;/span&gt; &lt;span class="s1"&gt;'\t'&lt;/span&gt; | column &lt;span class="nt"&gt;-t&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s1"&gt;$'&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;
&lt;span class="s2"&gt;"drug"&lt;/span&gt;           &lt;span class="s2"&gt;"susceptibility"&lt;/span&gt;  &lt;span class="s2"&gt;"kmer size"&lt;/span&gt;  &lt;span class="s2"&gt;"phylo group per covg"&lt;/span&gt;  &lt;span class="s2"&gt;"species per covg"&lt;/span&gt;  &lt;span class="s2"&gt;"phylo group depth"&lt;/span&gt;  &lt;span class="s2"&gt;"species depth"&lt;/span&gt;
&lt;span class="s2"&gt;"Amikacin"&lt;/span&gt;       &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Capreomycin"&lt;/span&gt;    &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ciprofloxacin"&lt;/span&gt;  &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Delamanid"&lt;/span&gt;      &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ethambutol"&lt;/span&gt;     &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ethionamide"&lt;/span&gt;    &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Isoniazid"&lt;/span&gt;      &lt;span class="s2"&gt;"R"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Kanamycin"&lt;/span&gt;      &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Levofloxacin"&lt;/span&gt;   &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Linezolid"&lt;/span&gt;      &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Moxifloxacin"&lt;/span&gt;   &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ofloxacin"&lt;/span&gt;      &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Pyrazinamide"&lt;/span&gt;   &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Rifampicin"&lt;/span&gt;     &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Streptomycin"&lt;/span&gt;   &lt;span class="s2"&gt;"R"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Since the terminal might sometimes be too small to view all the columns without breaking lines, I typically combine that with &lt;code&gt;less -S&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;selection.csv | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="s1"&gt;','&lt;/span&gt; &lt;span class="s1"&gt;'\t'&lt;/span&gt; | column &lt;span class="nt"&gt;-t&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s1"&gt;$'&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt; | less &lt;span class="nt"&gt;-S&lt;/span&gt;
&lt;span class="s2"&gt;"drug"&lt;/span&gt;           &lt;span class="s2"&gt;"susceptibility"&lt;/span&gt;  &lt;span class="s2"&gt;"kmer size"&lt;/span&gt;  &lt;span class="s2"&gt;"phylo group per covg"&lt;/span&gt;  &lt;span class="s2"&gt;"species per covg"&lt;/span&gt;  &lt;span class="s2"&gt;"phylo group depth"&lt;/span&gt;  &lt;span class="s2"&gt;"species depth"&lt;/span&gt;
&lt;span class="s2"&gt;"Amikacin"&lt;/span&gt;       &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Capreomycin"&lt;/span&gt;    &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ciprofloxacin"&lt;/span&gt;  &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Delamanid"&lt;/span&gt;      &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ethambutol"&lt;/span&gt;     &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ethionamide"&lt;/span&gt;    &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Isoniazid"&lt;/span&gt;      &lt;span class="s2"&gt;"R"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Kanamycin"&lt;/span&gt;      &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Levofloxacin"&lt;/span&gt;   &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Linezolid"&lt;/span&gt;      &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Moxifloxacin"&lt;/span&gt;   &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Ofloxacin"&lt;/span&gt;      &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Pyrazinamide"&lt;/span&gt;   &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Rifampicin"&lt;/span&gt;     &lt;span class="s2"&gt;"S"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;span class="s2"&gt;"Streptomycin"&lt;/span&gt;   &lt;span class="s2"&gt;"R"&lt;/span&gt;               &lt;span class="s2"&gt;"21"&lt;/span&gt;         &lt;span class="s2"&gt;"99.672"&lt;/span&gt;                &lt;span class="s2"&gt;"98.428"&lt;/span&gt;            &lt;span class="s2"&gt;"372"&lt;/span&gt;                &lt;span class="s2"&gt;"347"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is quite the mess of a command though, so I have of course created some aliases in my &lt;code&gt;~/.bash_aliases&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;colt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"column -t -s &lt;/span&gt;&lt;span class="nv"&gt;$'&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s2"&gt;'"&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;s&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'less -S'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So now, in these situations, I can just do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;selection.csv | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="s1"&gt;','&lt;/span&gt; &lt;span class="s1"&gt;'\t'&lt;/span&gt; | colt | s
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One caveat in this specific example needs to be added, and that is that &lt;code&gt;column -t&lt;/code&gt; can accept &lt;code&gt;,&lt;/code&gt; as separator straight away, with &lt;code&gt;column -t -s,&lt;/code&gt;, meaning that you don't necessarily need to convert commas to tabs &lt;em&gt;in this specific example&lt;/em&gt;. But tab separated output is common enough that you will find yourself needing the commands above anyway.&lt;/p&gt;

&lt;p&gt;Hope this helps!&lt;/p&gt;

&lt;p&gt;(Cross-posted from &lt;a href="https://livesys.se/posts/how-to-align-columns-in-the-terminal/" rel="noopener noreferrer"&gt;livesys.se&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>bash</category>
      <category>linux</category>
      <category>shell</category>
      <category>bioinformatics</category>
    </item>
  </channel>
</rss>
