In this HackerRank Sort Command #6 problem solution, You are given a file of tab separated weather data (TSV). There is no header column in this data file.
The first five columns of this data are: (a) the name of the city (b) the average monthly temperature in Jan (in Fahreneit). (c) the average monthly temperature in April (in Fahreneit). (d) the average monthly temperature in July (in Fahreneit). (e) the average monthly temperature in October (in Fahreneit).
You need to sort this file in ascending order of the second column (i.e. the average monthly temperature in January).
Input Format
A text file with multiple lines of tab separated data. The first five fields have been explained above
Output Format
Sort the data in ascending order of the average monthly temperature in January.
Introduction
In linux, the most vanilla version of ‘sort’ simply rearranges the lines in a file, in lexicographical order. Using a variety of flags and options, sort can also be extended in various powerful ways. The command can also be used for sorting tables of data, delimited by commas (csv) or tabs (tsv) or even spaces; on a particular column or field. The -k option helps sort the input file on a particular field, i.e. the column number.
Problem solution.
sort -t$'t' -k 2 -n
Second solution.
sort -g -t$'t' -k 2
Third solution.
sort -t $'t' -n -k2,2
Fourth solution.
cat | sort -n -k2 -t $'t'