두 숫자 사이의 모든 16진수를 찾는 방법

두 숫자 사이의 모든 16진수를 찾는 방법

두 숫자 사이에 있는 모든 16진수를 결정하는 작은 함수를 작성하고 싶습니다.

input.txt:

2E25:2E30

원하는 출력:

2E25
2E26
2E27
2E28
2E29
2E2A
2E2B
2E2C
2E2D
2E2E
2E2F
2E30

KSH를 사용하는 쉘 스크립트에서 이를 달성해야 하며 운영 체제는 Solaris 9입니다.

답변1

쉘 내장 기능을 사용하는 방법은 다음과 같습니다.

$ IFS=: read start end < input.txt
$ for (( x=16#$start; x<=16#$end; x++ )); do printf "%X\n" $x; done
2E25
2E26
2E27
2E28
2E29
2E2A
2E2B
2E2C
2E2D
2E2E
2E2F
2E30

먼저 디스크에서 시작 및 끝 매개변수를 읽습니다. 그런 다음 반복하여 값을 16진수로 해석하고( Arithmetic Evaluation구성에 대한 설명은 맨페이지 섹션 참조) 각 항목을 인쇄하여 16진수 형식으로 지정합니다.ksh[base#]n

저는 ksh이것을 자주 사용하지 않으며 이 문제를 해결하는 더 좋은 방법이 있을 수 있습니다.

관련 정보