Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Issue with unix sort

This is more of a doubt than a question.

So I have an input file like this:

$ cat test
class||sw sw-explr bot|results|id,23,0a522b36-556f-4116-b485-adcf132b6cad,20130325,/html/body/div/div[3]/div[2]/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/ul/li[4]/div/img
class||sw sw-explr bot|results|id,40,30cefa2c-6ebf-485e-b49c-3a612fe3fd73,20130323,/html/body/div/div[3]/div[2]/div[3]/div[3]/div/div/div/div/div[3]/div/div/ul/li[8]/div/img
class||sw sw-explr bot|results|id,3,72805487-72c3-4173-947f-e5abed6ea1e4,20130324,/html/body/div/div[3]/div[2]/div[2]/div[2]/div/div/div/div/div/div[3]/div/div/div[2]/ul/li[20]/div/img

Kind of defining the element in an html page. The comma separated 5 columns can be considered.

I want to sort this file with respect to the second column, i.e. columns having 23,40,3.

I am not sure why unix sort isn't working.

These are the queries I tried, surprisingly none gave me desired result.

cat test | sort -nt',' -k2

cat test | sort -n -t, -k2

cat test | sort -n -t$',' -k2

cat test | sort -t"," -k2

cat test | sort -n -k2

Is there something about sort that I don't know?

This didn't cause me a problem as I separated the columns, sorted, then joined again. But why did not sort work??

NB:- If I remove $3 of this file and then sort, it works fine!

like image 264
rohitkulky Avatar asked Aug 23 '26 18:08

rohitkulky


1 Answers

this line should work for you:

sort -t, -n  -k2,2 test
  • you don't need cat test|sort, just sort file
  • the default END POS of -k is the end of line. so if you sort -k2 it means sort from the 2nd field till the end of line. In fact you need sort by exact the 2nd field. And this also explains why your sort worked if you removed 3rd col.

if test with your example:

kent$  sort -t, -n  -k2,2 file
class||sw sw-explr bot|results|id,3,72805487-72c3-4173-947f-e5abed6ea1e4,20130324,/html/body/div/div[3]/div[2]/div[2]/div[2]/div/div/div/div/div/div[3]/div/div/div[2]/ul/li[20]/div/img
class||sw sw-explr bot|results|id,23,0a522b36-556f-4116-b485-adcf132b6cad,20130325,/html/body/div/div[3]/div[2]/div[2]/div[3]/div/div/div/div/div/div[2]/div/div/ul/li[4]/div/img
class||sw sw-explr bot|results|id,40,30cefa2c-6ebf-485e-b49c-3a612fe3fd73,20130323,/html/body/div/div[3]/div[2]/div[3]/div[3]/div/div/div/div/div[3]/div/div/ul/li[8]/div/img
like image 109
Kent Avatar answered Aug 26 '26 09:08

Kent