UNix one-liner to sort a file

Hi everyone,

I have a txt file as:

>001.b1
GCTAGTGCTAGCTAGCTAGCATCGATCGAT
>002.b1
CAGTCAGTCGTAGTGCTAGCTGATGCTCGT
>003.b1
CGATCGTAGTCGTATCGATGCTGACGTAGG
>002.g1
ATGCTGATCGACTAGCTAGTCGT
>015.b1
CGATCTAGTAGTGCTAGTCGTTT
>001.g1
ATGCTGATCGACTAGCTAGTCGT
>003.g1
CGATGCTAGTCGATGCTGACGGG

I am trying to sort the above file according to the header (starting with '>') for every record. I am using something like this:

sort -n file.txt

But it is sorting the file like dis:

>001.b1
>001.g1
>002.b1
>002.g1
>003.b1
>003.g1
>015.b1
ATGCTGATCGACTAGCTAGTCGT
ATGCTGATCGACTAGCTAGTCGT
CAGTCAGTCGTAGTGCTAGCTGATGCTCGT
CGATCGTAGTCGTATCGATGCTGACGTAGG
CGATCTAGTAGTGCTAGTCGTTT
CGATGCTAGTCGATGCTGACGGG
GCTAGTGCTAGCTAGCTAGCATCGATCGAT

Any suggestions??

This will probably fall apart at some point, but:

$ paste - - < file.txt | sort | xargs -n1
>001.b1
GCTAGTGCTAGCTAGCTAGCATCGATCGAT
>001.g1
ATGCTGATCGACTAGCTAGTCGT
>002.b1
CAGTCAGTCGTAGTGCTAGCTGATGCTCGT
>002.g1
ATGCTGATCGACTAGCTAGTCGT
>003.b1
CGATCGTAGTCGTATCGATGCTGACGTAGG
>003.g1
CGATGCTAGTCGATGCTGACGGG
>015.b1
CGATCTAGTAGTGCTAGTCGTTT

Thanks for your reply!

However my text files are huge data files, which I need to sort.
This works perfectly for small test data files.
So any other suggestions, what I can use ?
:slight_smile:

Which of those 3 commands does not work with large files and how does it manifest itself?