Неожиданный вывод «od»

Я не понимаю вывод программы od.

Предположим, я записываю содержимое abc в тестовый файл:

echo "abc" > test.txt

затем символы a (01100001), b (01100010) и c (01100011) преобразуются в двоичные файлы через таблицу ASCII и сохраняются в файле. Поэтому я ожидаю, что файл будет содержать следующие биты

011000010110001001100011

Если я конвертирую файл с помощью «xxd», результат будет следующим:

$ cat test.txt | xxd -b
00000000: 01100001 01100010 01100011 00001010                    abc.

(последние 8 битов (.) меня уже смущают, но я думаю, это из-за вывода 'cat')

Теперь: если я попытаюсь преобразовать файл с помощью «od», появится следующая картина.

$ od test.txt
0000000 061141 005143
0000004

У меня здесь свои проблемы. Я не могу понять, как од придумал эти цифры. Насколько я понимаю, od берет байт (например, первый -> 01100001 -> 'a') и переводит это число в восьмеричную систему счисления. Но это должно привести к «141».

Может ли кто-нибудь объяснить мне этот вопрос?


person EchtFettigerKeks    schedule 16.03.2021    source источник
comment
Этот последний байт в test.txt является новой строкой.   -  person Shawn    schedule 16.03.2021


Ответы (1)


Вот как od добраться из ab в 061141

ab => 0x6162 => 0x6261 (байты подкачки) = 25185 (десятичное) = 061141 (восьмеричное)

person Philippe    schedule 16.03.2021