10 awhdk;
14 hjoeow;
2 kdkld;
4 jkjdksl
How to sort this based on column one (i.e the count) ?
I'd want to get this output :
14 hjoeow;10 awhdk;4 jkjdksl;2 kdkld
I need both the columns to be printed based on sorting the first column.
sort
10 awhdk;
14 hjoeow;
2 kdkld;
4 jkjdksl
How to sort this based on column one (i.e the count) ?
I'd want to get this output :
14 hjoeow;10 awhdk;4 jkjdksl;2 kdkld
I need both the columns to be printed based on sorting the first column.
Best Answer
You can use
-k
to specify where in the input line the sort key starts and ends.You use the
-n
option or addn
to the sort key specification to trigger a numeric sort as opposed to a lexical sort by default. And-r
to reverse the sort.Here, for a numerical sort, you don't need to limit the sort key to the sort command. If you do:
It will treat the whole line as a number. The
14 hjoeow;
line for instance will be understood as the14
number.You could do:
To sort on the first field only, but that would make no difference.
The command to join lines is
paste
with the-s
option. You can specify the delimiter with-d
.\0
is a special value for the delimiter that means join with nothing in between. So, to get your expected output:POSIX
paste
require a filename be passed.-
is again a special value that means standard input. You can omit it with somepaste
implementations.