2012-02-13 2 views
1

Я работаю над назначением, чтобы написать зеркалирование программы ac(1). Выход ac и моя aac оба:Различия в шестнадцатеричном коде

"  total  5.80\n" 

Я побежал aac -file xyz > out1 и ac -file xyz > out2

Однако при использовании diff out1 и out2 я получаю:

1c1 
<  total  5.80 
--- 
>  total  5.80 

Получение шестнадцатеричные коды с помощью od I получить:

-bash-3.2$ od out1 
0000000 020040 020040 020040 072040 072157 066141 020040 020040 
0000020 020040 020040 027065 030070 000012 
0000031 
-bash-3.2$ od out2 
0000000 072011 072157 066141 020040 020040 020040 020040 027065 
0000020 030070 000012 
0000023 

Я не уверен, откуда эта разница.

+2

Вы бы облегчили жизнь себе, если бы вы использовали «od -x» вместо «od». Первый печатает истинный гекс (байтовый байт) вместо восьмеричного. Но похоже, что одна версия имеет больше пробелов слева. – paulsm4

+0

Я должен думать, что есть лучший выходной формат; попробуйте 'od -a' или' od -c'. Я предпочитаю формат вывода «xxd (1)», что упрощает сравнение версии «простого текста» с шестнадцатеричным вариантом. (Вероятно, 'od' можно сделать для вывода чего-то подобного, но' xxd' доступен на всех машинах, о которых я заботился.) – sarnold

ответ

2

См. an ASCII table и обратите внимание, что 011 является вкладкой, тогда как вы используете 040 пробелов.

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