grepを使用して与えられた範囲の16進行を返す方法は?

grepを使用して与えられた範囲の16進行を返す方法は?

ある場合は、次のように教えてください。

blah;PC=1234abcd
PC=4444bbcd;blah
PC=0000abcd;;foo
PC=1234abff

PC値が指定された範囲内にgrepある行をどのように処理できますか?1234ab001234b0ff

範囲-オプションは通常の順序でのみ機能するように見え、0-9a-A16進範囲では機能しません。

ベストアンサー1

grep -f <(printf "%x\n" $(seq -f "%.f" $(printf "%d %d" 0x1234ab00 0x1234b0ff))) file
  • printf2つの16進値のうち10進値を内部的に印刷します。
  • 次に、seqそれらの間のすべてを10進数で印刷します。
  • printfこれらすべての10進値の16進値を外部で印刷します。
  • 最後の検索grep -fでは、これらのパターンがすべて表示されますfile

出力:

blah;PC=1234abcd
PC=1234abff

おすすめ記事