這是我的示例文本文件:殼牌:在文件轉換第一個字段的文本文件的從十進制爲十六進制
$ cat RealVNC\ MRU.reg
"10"="Lamborghini-:1"
"16"="Terminus-"
"20"="Midnighter-:5915"
"35"="ThreepWood-:1"
"81"="Midnighter-:1"
"58"="Midnighter-"
而且我想轉換第一場的值( (""
之間的數字)從十進制到十六進制(它是Windows的.reg文件,所以我認爲數字是十進制數,現在文件太長而無法手動編輯)。
結果示例,我需要獲得:
$ cat Hex\ RealVNC\ MRU.reg
"0A"="Lamborghini-:1"
"10"="Terminus-"
"14"="Midnighter-:5915"
"23"="ThreepWood-:1"
"51"="Midnighter-:1"
"3A"="Midnighter-"
如可以看到的,只數字已經改變。 生成的數字必須是兩個字符(RegEdit認爲它們不同)。
行順序的變化在這裏不打擾,但我認爲這將是更「乾淨」的解決方案,不會改變它。
我不希望任何數量(無論是十進制或十六進制),將有超過2個字符,但認爲這種可能性將是最好的(因爲它是一個更通用的解決方案)的解決方案。
我迄今已檢測:
$ cat RealVNC\ MRU.reg | awk -F \" '{print $2}'
10
16
20
35
81
58
但我不知道是誰在網上進行的更改從十二月十六進制。
我的shell通常是Bash,但也可以接受其他shell衍生的解決方案(如Perl或Python)。
你解決了嗎?如果是,請將最有用的答案標記爲已接受。 – klashxx
只要它不再是規則,我會用更多的時間來:a)對答案進行更多的測試。 b)更多可能的答案。 c)更多建議/更正/細節。我更願意在幾周後接受答案,而不是太快,以至於我需要糾正我的選擇。 –