Можно сортировать сортировку 1 2 3 4..9 вместо 1 10 11 12 .. 2 20

Я использую этот скрипт для поиска ip онлайн

#!/bin/sh set -e # no args if [ $# -lt 1 ]; then echo "Too few args" echo "Options are:" echo "-a: Tell me which host is online" echo "-b: show only list of ip found" exit 1 fi # too many args if [ $# -gt 1 ]; then echo "$1 option unknown" echo "Options are:" echo "-a: Tell me which host is online" echo "-b: show only list of ip found" exit 1 fi case $1 in -a) array1=( `nmap -sP 192.168.0.0/24 | awk '/is up/ {print up}; {gsub (/\(|\)/,""); up = $NF}'` ) for i in ${array1[@]};do echo "Ip $i is online";done ;; -b) nmap -sP 192.168.0.0/24 | awk '/is up/ {print up}; {gsub (/\(|\)/,""); up = $NF}'|sort -fn ;; *) echo "$1 option unknown" echo "Options are:" echo "-a: Tell me which host is online" echo "-b: show only list of ip found" ;; esac 

но используя -b, верните список, подобный этому

 192.168.0.1 192.168.0.11 192.168.0.14 192.168.0.15 192.168.0.17 192.168.0.2 192.168.0.3 192.168.0.44 192.168.0.46 192.168.0.49 192.168.0.50 

Мне нужен список вроде этого

  192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.11 192.168.0.14 192.168.0.15 192.168.0.22 192.168.0.44 192.168.0.46 192.168.0.49 192.168.0.50 

Любое предложение для сортировки?

sort соответствии с . разделенное четвертое поле только:

 ... | sort -t. -k4,4n 
  • -t. устанавливает разделитель поля ввода как .

  • -k4,4n сортирует файл только по 4-му -k4,4n , а n реализует числовую сортировку

Пример:

 $ cat file.txt 192.168.0.1 192.168.0.11 192.168.0.14 192.168.0.15 192.168.0.17 192.168.0.2 192.168.0.3 192.168.0.44 192.168.0.46 192.168.0.49 192.168.0.50 $ sort -t. -k4,4n file.txt 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.11 192.168.0.14 192.168.0.15 192.168.0.17 192.168.0.44 192.168.0.46 192.168.0.49 192.168.0.50