Unix Wiki

Use this perl command

perl -e '{$file="test.txt";$lin=1;$sep=";"} print ++$i."\t$_$/"foreach(split/$sep/,qx[head -$lin $file|tail -1])'

Just change the 3 variables at the start of the perl code with:

  • $file the name of the file (duh)
  • $lin The row where the header is located. Most of the time is 1.
  • $sep The separator used in the file header. This is a regular expression.


Given a file with this text on the 1st line:


The command output will be:

> perl -e '{$file="test.txt";$lin=1;$sep=";"} print ++$i."\t$_$/"foreach(split/$sep/,qx[head -$lin $file|tail -1])'
1 Name
2 Date
3 OpNumber
4 ID
5 Volume
6 Closing
7 Open
8 Min
9 Max
10 Mean

This output could be useful when trying to filter some file with many header columns with awk. See the Obtaining lines from a text file where a column has some value article for more information.