如何对输出进行排序

如何对输出进行排序
fdisk -l |grep Disk |grep xvd |awk ' {print $1, $2, $3} '

输出为

Disk /dev/xvda: 42.9
Disk /dev/xvdl: 21.5
Disk /dev/xvdm: 21.5
Disk /dev/xvdj: 2147
Disk /dev/xvdk: 8589
Disk /dev/xvdd: 1073
Disk /dev/xvde: 1073
Disk /dev/xvdb: 21.5
Disk /dev/xvdc: 1073
Disk /dev/xvdh: 2147
Disk /dev/xvdi: 2147
Disk /dev/xvdf: 10.7
Disk /dev/xvdg: 42.9
Disk /dev/xvdn: 10.7

我希望对中间一列进行排序,以便 xvda 在顶部,xvdn 在底部。

答案1

因为第 1 列完全相同,并且您想要正常排序顺序。您可以sort不带参数使用。只需将其输入到 即可sort

您可以减少命令数量,例如

fdisk -l |grep "Disk.*xvd" |awk '{print $1, $2, $3}' |sort

或者

fdisk -l | awk '/Disk.*xvd/ {print $1, $2, $3}' | sort

答案2

fdisk -l |grep Disk |grep xvd |awk ' {print $1, $2, $3} ' | sort -V -k 2

相关内容