use*_*394 3 shell-script text-processing
我正在尝试将我的诺基亚备份文件转换为可接受的 vcard 格式。它具有出现在二进制数据之间的有效 vcard 字符串。例如:
!@#JUNKCHARACTERS!@#!@BEGIN:VCARD
VERSION:2.1
N:Jimmy;;;;
TEL;VOICE:4445551212
END:VCARD!@#JUNKCHARACTERS!@#!@
Run Code Online (Sandbox Code Playgroud)
我一直在使用十六进制编辑器来进行一些查找和替换,但即使如此也很乏味。我可以使用 grep 或其他一些命令行工具来提取BEGIN:VCARD
和之间的所有字符串END:VCARD
吗?
如果我太天真,我很抱歉,但你不能:
strings binary-file > binary-strings-output.txt
Run Code Online (Sandbox Code Playgroud)
然后对字符串输出进行后期处理?沿着以下路线:
awk '/BEGIN:VCARD/,$NF ~ /END:VCARD/' binary-strings-output.txt
Run Code Online (Sandbox Code Playgroud)