Skip to content
Advertisement

Sorting a tab delimited file

I have a data with the following format:

foo<tab>1.00<space>1.33<space>2.00<tab>3

Now I tried to sort the file based on the last field decreasingly. I tried the following commands but it wasn’t sorted as we expected.

$ sort -k3nr file.txt  # apparently this sort by space as delimiter

$ sort -t"t" -k3nr file.txt
  sort: multi-character tab `\t'

$ sort -t "`/bin/echo 't'`" -k3,3nr file.txt
  sort: multi-character tab `\t'

What’s the right way to do it?

Here is the sample data.

Advertisement

Answer

Using bash, this will do the trick:

$ sort -t$'t' -k3 -nr file.txt

Notice the dollar sign in front of the single-quoted string. You can read about it in the ANSI-C Quoting sections of the bash man page.

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement