Como alternativa, você pode classificar a parte do primeiro campo que começa no deslocamento 8:
$ sort -k1.8 < file
[a2--0-boot] /dev/sda2 179M
[b2--1-boot] /dev/sdb2 1008M
[a8--2-home] /dev/sda8 2.0G
[b11-2-home] /dev/sdb11 2.0G
[a9--1-var] /dev/sda9 996M
[b14-2-var] /dev/sdb14 2.0G
Se o seu sistema tiver um comando rev
, você pode fazer:
$ rev < file | sort -k3 | rev
[b11-2-home] /dev/sdb11 2.0G
[a8--2-home] /dev/sda8 2.0G
[a9--1-var] /dev/sda9 996M
[b14-2-var] /dev/sdb14 2.0G
[a2--0-boot] /dev/sda2 179M
[b2--1-boot] /dev/sdb2 1008M
Para reverter apenas o primeiro campo:
rev1() {
sed -e 's/^/\
/;:1' -e 's/\(.*\n\)\([^[:blank:]]\)//;t1' -e 's/\n//'
}
rev1 < file | sort | rev1