我们有一个内部实用程序,输出如下:
$ ./my_cmd
"abc\228\184\173\230\150\135ABC"
转义的int(不是oct)来自utf8流字节,用斜杠分隔,我们可以使用python转义它
>>> ''.join(chr(int(c)) for c in r"\228\184\173\230\150\135".split('\\') if c).decode('utf8')
u'\u4e2d\u6587'
>>> print u'\u4e2d\u6587'
中文
我的问题是有没有方便的shell实用程序可以逃脱它而不是python?
它会像这样行事
$ ./my_cmd
"abc\228\184\173\230\150\135ABC"
$ ./my_cmd | some_utility
abc中文ABC
我试图研究bash的printf
和/usr/bin/printf
这些似乎无法处理它。可以提出一个很容易记住的perl
或sed/awk
黑客吗?
答案 0 :(得分:1)
您可以格式化数据以用于recode
:
$ echo '"\228\184\173\230\150\135"' | tr -c '0-9' '\n' | recode -f d1..data; echo
中文
$