2つの数字の間のすべての16進数を見つける方法

2つの数字の間のすべての16進数を見つける方法

2つの数字の間にあるすべての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これを頻繁に使用せず、この問題を解決するより良い方法があるかもしれません。

おすすめ記事