テキストファイルの16進値を(変更された)10進値に置き換えます。

テキストファイルの16進値を(変更された)10進値に置き換えます。

ファイル内にはtest.txt16進値があります。

0x0000000000000000000000000000000000000000047546124890225541102135415377465907

1行。他の行や文字はありません。また、0x でのみ識別されます。

388355321549592156970965297418600041568519この16進値を10進数()に変換して1を引いて、この操作の結果として元の値を上書きしたいと思います。test.txt

最終的には、ファイルのデータはtest.txt次から始める必要があります。

0x0000000000000000000000000000000000000000047546124890225541102135415377465907

到着

388355321549592156970965297418600041568518

Bash(Linuxシェル)を使ってこれを行う方法を教えてくれてありがとう。

ベストアンサー1

、を使用してperlファイルを所定の位置に編集します。

perl -Mbigint -lpi -e '$_ = hex($_) - 1' your-file

行全体が16進数であるとします。場所に関係なくすべての16進数を変換するには:

perl -Mbigint -lpi -e 's{\b0x[\da-f]+\b}{hex($&) - 1}gie' your-file

おすすめ記事