Portál AbcLinuxu, 6. května 2025 11:42
192.168.1.55 192.168.1.1 192.168.1.105A pouziji na nej unixovy prikaz sort, dostanu:
192.168.1.1 192.168.1.105 192.168.1.55Coz vzhledem k tomu, ze razenymi daty jsou IP adresy, neni kyzeny vysledek. Ten by mel vypadat takto:
192.168.1.1 192.168.1.55 192.168.1.105Mohu takoveto razeni realizovat prostrednictvim standardnich linuxovych command line nastroju, aniz bych si na to muzel psat vlastni skript?
Řešení dotazu:
sort -n
echo -e "192.168.1.55\\n192.168.1.1\\n192.168.1.105" | perl -ne 'sub ip2dec ($) { unpack N => pack CCCC => split /\./ => shift; } print ip2dec($_); print "\n";' | sort --numeric-sort | perl -ne 'sub dec2ip ($) { join ".", unpack "C4", pack "N", shift; } print dec2ip($_); print "\n"'
Výstupem je:
192.168.1.1 192.168.1.55 192.168.1.105Určitě by to šlo i jednodušeji…
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.