Как найти все шестнадцатеричные числа между двумя номерами

Я хочу написать небольшую функцию, которая поможет мне определить все шестнадцатеричные числа, присутствующие между двумя числами.

input.txt :

 2E25:2E30 

Желаемый результат:

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

Мне нужно добиться этого в сценарии оболочки, используя KSH, а ОС – Solaris 9.

One Solution collect form web for “Как найти все шестнадцатеричные числа между двумя номерами”

Вот один подход с использованием только встроенных оболочек:

 $ 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 

Сначала мы читаем начальные и конечные параметры с диска. Затем мы выполняем цикл, интерпретируя значения как шестнадцатеричные числа (см. Раздел « Arithmetic Evaluation » ksh manpage для обсуждения конструкции [base#]n ), а затем печатайте каждую запись, форматируя ее как шестнадцатеричную.

Обратите внимание: я не использую ksh регулярно, скорее всего, лучший подход к этой проблеме.

  • Какой интерпретатор оболочки запускает скрипт без shebang?
  • ") Ошибка синтаксиса Недействительный арифметический оператор (маркер ошибки"
  • Скопировать содержимое одного скрипта в другой скрипт
  • Как я могу получить внешний IP-адрес в сценарии оболочки?
  • aliasing cd to pushd - это хорошая идея?
  • Прочитайте строку из файла, манипулируйте, а затем добавьте в другой файл
  • Где продолжение строки bash после && и || документально?
  • Запуск стеклянной рыбы на сервере LINUX удаленно
  • Как удалить новую строку перед EOF в файле text / csv через bash
  • Как преобразовать несколько изображений tiff в координаты xyz в одном текстовом файле с помощью терминала?
  • Копировать файл при замене текста в нем
  • Linux и Unix - лучшая ОС в мире.