ファイル内にはtest.txt
16進値があります。
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