Вывод дампа файла, содержащего управляющие символы. (Не все символы видны в выводе дампа.)

Модератор: Модераторы разделов

Ответить
dio
Сообщения: 97
ОС: Ubuntu
Контактная информация:

Вывод дампа файла, содержащего управляющие символы.

Сообщение dio »

Система DISTRIB_DESCRIPTION="Linux Lite 5.4"
При записи в файл некоторой последовательности символов (скажем, xxxxxx), а затем сразу 2-х управляющих символов Ctrl+V и Ctrl+U и последующего дампа этого файла получаем:
cat od_file | od -c
0000000 x x x x x x 025 \n
0000010
Суть вопроса в следующем. Почему я не получаю восьмеричный код символа, генерируемого при наборе Ctrl+V, а получаю только код символа, сгенерированного комбинацией Ctrl+U ?
И второе - что означают последовательности 0000000 и 0000010 вначале 1-й и 2-й строки вывода(почему именно это выводится)?
Буду благодарен, если кто в курсе. Спасибо.
Software is like sex: It's better when it's free.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Вывод дампа файла, содержащего управляющие символы.

Сообщение Bizdelnick »

dio писал:
18.06.2021 14:45
Почему я не получаю восьмеричный код символа, генерируемого при наборе Ctrl+V
Потому что его в файле нет, очевидно.
dio писал:
18.06.2021 14:45
что означают последовательности 0000000 и 0000010 вначале 1-й и 2-й строки вывода
Смещение.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
dio
Сообщения: 97
ОС: Ubuntu
Контактная информация:

Re: Вывод дампа файла, содержащего управляющие символы.

Сообщение dio »

Ну, он есть, не согласен( а если вы настаиваете, что нет, то куда же он делся? Я же его ввожу) . Вы можете проверить тоже самое, введя в консоли ту-же последовательность символов, те
echo 'xxxxx^U' | od -c
0000000 x x x x x 025 \n
0000007
и получите тот же результат (что - и в консоли его нет? :) ). А есть он потому, ЧТО ЕСЛИ БЫ ЕГО НЕ БЫЛО, мы бы не получили ожидаемое, те литерализацию управляющей последовательности, вводимой Ctrl+U.
Здесь после ххххх идет сразу Ctrl+V и CTRL+U , те символ там есть, просто он не видим.
А что по смещению? Какое смещение? В чем измеряемое? Относительно чего смещение...не ответ, а загадки одни :-)
Но спасибо за попытку.
Software is like sex: It's better when it's free.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Вывод дампа файла, содержащего управляющие символы.

Сообщение Bizdelnick »

dio писал:
18.06.2021 20:48
Вы можете проверить тоже самое, введя в консоли туже последовательность символов

Shell

% od -c
xxxxx^V^U0000000 x x x x x 026 025
0000007
dio писал:
18.06.2021 20:48
А есть он потому, ЧТО ЕСЛИ БЫ ЕГО НЕ БЫЛО, мы бы не получили ожидаемое, те литерализацию управляющей последовательности, вводимой Ctrl+U.
Правильно. А чтобы получить литерализацию ^V, надо тоже предварительно ввести ^V. Вводите ^V^V^V^U, на вход od придёт ^V^U, как я показал выше.
dio писал:
18.06.2021 20:48
А что по смещению? Какое смещение? В чем измеряемое?
В байтах.
dio писал:
18.06.2021 20:48
Относительно чего смещение...
Относительно начала ввода.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
dio
Сообщения: 97
ОС: Ubuntu
Контактная информация:

Re: Вывод дампа файла, содержащего управляющие символы.

Сообщение dio »

Почему вы литерализируете Ctrl+V трижды его вводя? Я вот знаю 2 способа - обратный слэш и одинарные кавычки. Так что не так в моем примере?
echo 'xxxxx^U' | od -c
0000000 x x x x x 025 \n
0000007
введите его в консоли (вводя один раз Ctrl+V) и получите мой результат. И если все же литерализируется Ctrl+U, то ввод Ctrl+V работает, те он вводится, а не исчезает. Тогда почему его "нет" на выходе?
Так по смещению еще тоже не все ясно. Чему эти 7 байт соответствуют? И почему поле смещения семизначное?
Software is like sex: It's better when it's free.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Вывод дампа файла, содержащего управляющие символы.

Сообщение Bizdelnick »

dio писал:
18.06.2021 21:04
введите его в консоли (вводя один раз Ctrl+V) и получите мой результат.
И зачем мне это делать? Я и так знаю, что получу.
dio писал:
18.06.2021 21:04
Так по смещению еще тоже не все ясно. Чему эти 7 байт соответствуют?
Числу байт в вводе. То есть смещению, которое было бы у следующего байта (которого нет).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
dio
Сообщения: 97
ОС: Ubuntu
Контактная информация:

Re: Вывод дампа файла, содержащего управляющие символы.

Сообщение dio »

В общем "да" на все. Спасибо.
Если кому интересно стало, тут подробнее http://heap.altlinux.org/alt-docs/textbooks/linux_intro/Shell.html
PS Не знаю, как пометить тему "решенной"...точнее забыл..с 2004 года :)
Software is like sex: It's better when it's free.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Вывод дампа файла, содержащего управляющие символы.

Сообщение Bizdelnick »

dio писал:
18.06.2021 21:04
Почему вы литерализируете Ctrl+V трижды его вводя?
Не трижды, а дважды. Первое нажатие говорит, что введённое следующим нажатием должно быть подставлено буквально, а не интерпретироваться как управляющая последовательность. Третье нажатие ^V делает то же самое для ^U. Вы нажимаете только ^V^U, соответственно, вводится только ^U.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
dio
Сообщения: 97
ОС: Ubuntu
Контактная информация:

Re: Вывод дампа файла, содержащего управляющие символы.

Сообщение dio »

Да :) еще раз спасибо. Раз тут у вас "по взрослому все", буду по чаще заходить ;)
Software is like sex: It's better when it's free.
Спасибо сказали:
Ответить