1
創建一個命名爲test
包含以下內容的文件:如何在刪除字節時爲vim中的「xxd -r」創建一個有效的輸入?
abcdefabcdef
我想與使用XXD的刪除第一個0
。用vim -b test
打開它,然後在vim中運行:%!xxd
。其結果是:
0000000: 3031 3233 3435 3637 3839 6162 6364 6566abcdef
0000010: 3031 3233 3435 3637 3839 6162 6364 6566abcdef
0000020: 0a .
然後我刪除的十六進制代碼爲30
第一0
:
0000000: 31 3233 3435 3637 3839 6162 6364 6566abcdef
0000010: 3031 3233 3435 3637 3839 6162 6364 6566abcdef
0000020: 0a .
然後我跑:%!xxd -r
讀六角回來。結果是:
^@23456789abcdef^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
結果是亂碼。我知道原因是上述內容不是有效的xxd輸入。如果我刪除的行號和文本部分:
31 3233 3435 3637 3839 6162 6364 6566
3031 3233 3435 3637 3839 6162 6364 6566
0a
的我跑:%!xxd -r -p
讀六角回來。結果是正確的:
123456789abcdefabcdef
有沒有更好的方法來使用vim和xxd來完成這項工作?更好的方式意味着更少的編輯來爲xxd -r
製作有效的輸入。
是否要刪除第一列?試試':%!xxd -p' – kev 2014-11-23 08:56:16
對於像'test'這樣的小文本文件,':%!xxd -p'起作用。但如果我想刪除大文本文件中的一些字符。如果沒有行號和文本部分,很難知道要刪除哪些十六進制代碼。 – 2014-11-23 09:01:04