Сортировка версий Linux; первые буквы

318
tjt263

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 

0

1 ответ на вопрос

4
glenn jackman

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

{ IFS= read -r header; echo "$header"; sort -V; } < /proc/net/arp 
хм, это много запятых. glenn jackman 6 лет назад 0
Спасибо, это работает. Я просто оставлю это немного на тот случай, если у кого-то будет что-то более подходящее. Если нет, я поставлю большую зеленую галочку. tjt263 6 лет назад 0

Похожие вопросы