#sorting
#сортировка
Вопрос:
Есть ли какой-либо способ отсортировать результаты вывода этой команды? Я хотел бы разделить первый столбец на точки «.», а затем отсортировать по типу (например, «xlarge»)
# curl 'https://ec2.shop?region=us-west-2amp;filter=m4,a1'
Instance Type Memory vCPUs Storage Network Price Monthly Spot Price
a1.xlarge 8 GiB 4 vCPUs EBS only Up to 10 Gigabit 0.1020 74.460 0.0334
m4.2xlarge 32 GiB 8 vCPUs EBS only High 0.4000 292.000 0.1398
...
m4.xlarge 16 GiB 4 vCPUs EBS only High 0.2000 146.000 0.0657
Чтобы результаты выглядели примерно так…
a1.xlarge 8 GiB 4 vCPUs EBS only Up to 10 Gigabit 0.1020 74.460 0.0334
m4.xlarge 16 GiB 4 vCPUs EBS only High 0.2000 146.000 0.0657
Так проще сравнивать результаты. xlarge должны быть сгруппированы вместе, в то время как 2xlarge должны быть рядом друг с другом.
Комментарии:
1.
sort -t"." -k2
сделал бы это, но не обработал строку заголовка.
Ответ №1:
$ curl -s 'https://ec2.shop?region=us-west-2amp;filter=m4,a1' | sort -k2 -t.
Instance Type Memory vCPUs Storage Network Price Monthly Spot Price
m4.10xlarge 160 GiB 40 vCPUs EBS only 10 Gigabit 2.0000 1460.000 0.7443
m4.16xlarge 256 GiB 64 vCPUs EBS only 20 Gigabit 3.2000 2336.000 1.1896
a1.2xlarge 16 GiB 8 vCPUs EBS only Up to 10 Gigabit 0.2040 148.920 0.0667
m4.2xlarge 32 GiB 8 vCPUs EBS only High 0.4000 292.000 0.1398
a1.4xlarge 32 GiB 16 vCPUs EBS only Up to 10 Gigabit 0.4080 297.840 0.1335
m4.4xlarge 64 GiB 16 vCPUs EBS only High 0.8000 584.000 0.3199
a1.large 4 GiB 2 vCPUs EBS only Up to 10 Gigabit 0.0510 37.230 0.0167
m4.large 8 GiB 2 vCPUs EBS only Moderate 0.1000 73.000 0.0341
a1.medium 2 GiB 1 vCPUs EBS only Up to 10 Gigabit 0.0255 18.615 0.0083
a1.metal 32 GiB 16 vCPUs EBS only Up to 10 Gigabit 0.4080 297.840 0.1335
m4.xlarge 16 GiB 4 vCPUs EBS only High 0.2000 146.000 0.0657
a1.xlarge 8 GiB 4 vCPUs EBS only Up to 10 Gigabit 0.1020 74.460 0.0334