I try to sort the following file:
$ cat testfile
ZBOX-BATCH-SAMEDI;CMC10
ZBOX-BATCH-SAMEDI_D1;HEB05
ZBOX-BATCH-SAMEDI;BMD15
ZBOX-BATCH-SAMEDI_D3;HEB03
ZBOX-BATCH-SAMEDI_D3_M1;ODP47
ZBOX-BATCH-SAMEDI_D1_M1;TER23
ZBOX-BATCH-SAMEDI_D3;HEB02
ZBOX-BATCH-SAMEDI_D1;HEB02
ZBOX-BATCH-SAMEDI;DEA11
ZBOX-BATCH-SAMEDI;DEA11A
And I get:
$ sort testfile
ZBOX-BATCH-SAMEDI;BMD15
ZBOX-BATCH-SAMEDI;CMC10
ZBOX-BATCH-SAMEDI_D1;HEB02
ZBOX-BATCH-SAMEDI_D1;HEB05
ZBOX-BATCH-SAMEDI_D1_M1;TER23
ZBOX-BATCH-SAMEDI_D3;HEB02
ZBOX-BATCH-SAMEDI_D3;HEB03
ZBOX-BATCH-SAMEDI_D3_M1;ODP47
ZBOX-BATCH-SAMEDI;DEA11
ZBOX-BATCH-SAMEDI;DEA11A
However, I was expecting:
ZBOX-BATCH-SAMEDI;BMD15
ZBOX-BATCH-SAMEDI;CMC10
ZBOX-BATCH-SAMEDI;DEA11
ZBOX-BATCH-SAMEDI;DEA11A
...
That is, I want all the rows with the string ZBOX-BATCH-SAMEDI before the first semicolon to come first, then the ones with ZBOX-BATCH-SAMEDI_D1, etc.
I looked man sort and I tried different options like -g and -k with -t, but I didn't manage. How can I do it?