명령줄에 주어진 IP 주소를 숫자순으로 정렬하려고 합니다.
입력 및 출력의 예:
Input - Output
192.168.111.123 - 129.168.111.123
192.312.583.321 - 129.123.358.123
987.654.321.970 - 789.456.123.079
답변1
로직코드만 넣어주세요
$ orig_IPADDR="192.168.111.123" $sorted_IPADDR=$(echo $orig_IPADDR | awk -v RS="." -v ORS="." '{cmd="echo "$1"|grep -o .|sort -n| tr -d '\'' \n'\''" ; cmd|getline 출력; close(cmd) ;출력 인쇄}' | sed 's/.$//') $echo$sorted_IPADDR 129.168.111.123
답변2
점으로 구분된 각 숫자로 숫자를 정렬합니다.
$ echo '324.98.120928' | perl -ne 'chomp;for $n (split /\./) { push @s,join("",sort(split //, $n))};print join(".",@s),"\n"'
234.89.012289
펄 스크립트:
chomp;
for $n ( split /\./ ) {
push @s, join( "", sort( split //, $n ) );
}
print join( ".", @s ), "\n";
그러면 주어진 문자열이 개별 숫자( $n
)로 분할된 다음 각 숫자가 개별 숫자( split //, $n
)로 분할됩니다. 그런 다음 이 숫자는 정렬되어 숫자로 재조립되어 배열로 푸시됩니다 @s
.
마지막으로 배열은 @s
숫자 사이에 점을 인쇄합니다.
답변3
왜 sort
명령을 사용하지 않습니까? 모든 세부 사항을 확인하세요 man sort
. 하지만 귀하의 문제는 매우 짧고 간단하며 간단한 해결책이 필요한 것 같습니다. 목록을 sort
.