Files

^@^@^@ 在文本文件中是什麼意思?

  • January 8, 2014

有時我在使用圖形文本編輯器打開文件時遇到問題——我正在使用geany. 該文件可以vim毫無問題地讀取。我檢查了文件,除了一些行之外,它沒有任何問題。這是例如.bash_history文件:

776 reboot
777 ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^     @^@^@^@^@^@^@geany /etc/fstab
....
....
823 reboot 
824 ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@exit

我不知道是什麼^@,但是在刪除每一行之後,可以在geany. 也許重新啟動操作與它有關?但我reboot在文件中有其他條目,^@字元只出現在兩三個地方。

這只是一個範例文件,我看到了其他一些文件中的字元,有一點似乎是一樣的——它只涉及大文件,那些有很多行的文件。

有誰知道它是什麼^@意思,它來自哪里以及為什麼vim讀取文件沒有問題而geany根本無法讀取?

當文件中有雜散字元時,您可以尋求工具odhexdump.

例子

od首先,當我們告訴它以a.txt十六進制格式 ( ) 轉儲文件的內容時,我們將展示八進制轉儲 ( ) 顯示的內容-x

$ od -x a.txt 
0000000 3737 2036 6572 6f62 746f 370a 3737 0020
0000020 0000 0000 0000 0000 0000 0000 0000 0000
*
0000140 0000 0000 0000 0000 0000 0000 0000 6567
0000160 6e61 2079 652f 6374 662f 7473 6261 380a
0000200 3332 7220 6265 6f6f 2074 380a 3432 0020
0000220 0000 0000 0000 0000 0000 0000 0000 0000
*
0000320 7865 7469 000a
0000325

我們可以hexdump用來做類似的事情,以十六進制格式顯示數據,但如果可能的話,它也會將值顯示為 ASCII 字元。

十六進制轉儲

$ hexdump -C a.txt 
00000000  37 37 36 20 72 65 62 6f  6f 74 0a 37 37 37 20 00  |776 reboot.777 .|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 67 65  |..............ge|
00000070  61 6e 79 20 2f 65 74 63  2f 66 73 74 61 62 0a 38  |any /etc/fstab.8|
00000080  32 33 20 72 65 62 6f 6f  74 20 0a 38 32 34 20 00  |23 reboot .824 .|
00000090  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000000d0  65 78 69 74 0a                                    |exit.|
000000d5

查看上面的輸出,您會注意到幾個00 00 00. ^@這些是您最初詢問的那些角色。

順便說一下,該字元00是空字元。

引用自:https://unix.stackexchange.com/questions/108321