我想将以下十六进制字符串转换为普通字符串,并替换文件内容中的内联。十六进制字符用于复选框TRUE符号。
创建联系人列表 L0 |创建联系人列表| C432965(2466ms)
创建联系人 1)L0 |创建基本联系人| C679288
创建联系人列表 已替换L0 |创建联系人列表| C432965(2466ms)
创建联系人 1)L0 |创建基本联系人| C679288
def convert_int_to_fruit(int_value):
try:
my_fruit_from_int = Fruit(int_value)
return my_fruit_from_int.name
except:
return None
我可以使用iconv和tr将该十六进制字符串转换为变量,但是如何重试此内容以替换整个文件呢?
root@server:/portal# hexdump -C /report.txt
00000000 0a 0a 20 20 43 72 65 61 74 65 20 43 6f 6e 74 61 |.. Create Conta|
00000010 63 74 20 4c 69 73 74 0a 20 20 20 20 e2 88 9a 20 |ct List. ... |
00000020 4c 30 20 7c 20 43 72 65 61 74 65 20 63 6f 6e 74 |L0 | Create cont|
00000030 61 63 74 20 6c 69 73 74 20 7c 20 43 34 33 32 39 |act list | C4329|
00000040 36 35 20 28 32 34 36 36 6d 73 29 0a 0a 20 20 43 |65 (2466ms).. C|
00000050 72 65 61 74 65 20 43 6f 6e 74 61 63 74 0a 20 20 |reate Contact. |
00000060 20 20 31 29 20 4c 30 20 7c 20 43 72 65 61 74 65 | 1) L0 | Create|
00000070 20 62 61 73 69 63 20 63 6f 6e 74 61 63 74 20 7c | basic contact ||
00000080 20 43 36 37 39 32 38 38 0a 0a | C679288..|
0000008a
是否有通过sed -i -e直接修改此类特殊字符的文件的解决方案?
答案 0 :(得分:1)
e2 88 9a
是十六进制转储的重要部分。
使用GNU sed:
sed -i 's/\xe2\x88\x9a/REPLACED/' /report.txt