2014-02-05 3 views
9

Я вижу много символов ^@ в содержимом текстового файла на моем сервере UNIX. Я не могу понять, что означает ^@? и как удалить их из файла? и прежде всего, почему он создан?Что такое символ @ @ в vi?

Если я стараюсь, чтобы увидеть содержимое файла с помощью cat, я получаю это:

u3210#"! utypyado 

Однако если попытаться использовать cat -v, я получаю ^@ символов (как прикрепленного скриншоте) вместе с текстом на английском. Тот же выход наблюдается, когда я использую vi с командой :set list.

Любая помощь очень ценится, спасибо заблаговременно.

enter image description here

+3

Его нулевой байт. (Вы можете ввести его, выполнив ' 000') – FDinoff

+0

он может смотреть на двоичный файл? –

+0

Его файл .htaccess для apache, поэтому он не должен содержать символ NULL. спасибо за ваши усилия и время, или есть ли вероятность, что мой файл поврежден? – PKumar

ответ

11

В комментариях говорят ^@ фактически нулевые байты (\x00) в файле.

Если вы хотите, чтобы избавиться от всех случаев нулевой байт, то вы можете использовать эту команду в vi:

:%s/[\x0]//g 
+1

Спасибо Anubhava, я получил его теперь, но я не понимаю, при каких обстоятельствах они созданы или созданы? – PKumar

+1

Я обычно видел их в файлах журналов. Наличие нулевых байтов в '.htaccess' встречается редко, поскольку эти файлы редактируются вручную в большинстве случаев. Скорее всего, из-за некоторых правил переписывания правил, которые вы, возможно, использовали в прошлом, просто предположение. – anubhava

1

Вы можете ответить на этот вопрос сами: по крайней мере, «какой характер это» часть, а не «как это получилось». От :help ga:

Print the ascii value of the character under the 
cursor in decimal, hexadecimal and octal. For 
example, when the cursor is on a 'R': 
     <R> 82, Hex 52, Octal 122 

Для получения более подробной информации и связанных с ними команд, смотрите полную запись.

Смежные вопросы