GNU sort -V отлично подходит для сортировки IP-адресов. К сожалению, он бросает все строки с начальными буквами (в отличие от цифр) в нижней части стопки. Есть ли способ обойти это?

Замечания:
• 192.168.0.103 отсутствует, потому что это локальный хост.
• MAC /HW адреса были изменены.


• кошка

user@host:~$ cat /proc/net/arp
IP address       HW type     Flags       HW address            Mask     Device
192.168.0.106    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.1      0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.101    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.104    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.110    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.108    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.107    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.102    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.105    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.100    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.109    0x1         0x2         00:00:00:00:00:00     *        wlan0

• сортировать -V

user@host:~$ sort -V /proc/net/arp
192.168.0.1      0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.100    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.101    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.102    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.104    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.105    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.106    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.107    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.108    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.109    0x1         0x2         00:00:00:00:00:00     *        wlan0
192.168.0.110    0x1         0x2         00:00:00:00:00:00     *        wlan0
IP address       HW type     Flags       HW address            Mask     Device

1 ответ1

4

Вот один из способов сохранить заголовок вверху: перенаправить файл и из потока использовать первую строку, а затем дать оставшиеся строки для сортировки.

{ IFS= read -r header; echo "$header"; sort -V; } < /proc/net/arp

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .