가장 큰 숫자를 찾는 쉘 명령입니다. 그런데 문제는 소수점 이하 두 자리가 최고치로 간주되지 않는다는 점이다.

가장 큰 숫자를 찾는 쉘 명령입니다. 그런데 문제는 소수점 이하 두 자리가 최고치로 간주되지 않는다는 점이다.

쉘 스크립트를 사용하여 변수에 언급된 값 중 최대 개수를 찾습니다.

예를 들어

VAR="2011.2/2009.1/2011.10"

셸 스크립트는 2011.10을 세 가지 중 가장 높은 것으로 식별해야 하며 출력은 2011.10이어야 합니다.

VAR="2011.10/2011.1"인 경우 출력은 2011.10이어야 합니다.

VAR="2010.1/2011.2"인 경우 출력은 2011.2여야 합니다.

여기서 문제는 소수점 이하 두 자리가 소수점 이하 한 자리보다 작은 것으로 간주된다는 점입니다.

답변1

당신이 요구하는 것은 더 비슷합니다버전숫자 비교.

tr+sort+head해결책:

v="2011.2/2009.1/2011.10"
tr '/' '\n' <<<"$v" | sort -rV | head -1
2011.10

테스트 사례:

v="2011.1/2011.2"
tr '/' '\n' <<<"$v" | sort -rV | head -1
2011.2

v="2011.1/2011.2/2011.101"
tr '/' '\n' <<<"$v" | sort -rV | head -1
2011.101

관련 정보