GNU Core Utilities. Часть V
Содержание:
1. Часть I;
2. Часть II;
3. Часть III;
4. Часть IV;
5. Часть V (Вы читаете данный раздел);
6. Часть VI.
Следующая программа — nl (эн-эль). Она добавляет номер к каждой строке. Например, перечислим пару культовых имен мира СПО и посмотрим, как эта программа сохранит их в файл.
Смотрим, что получилось — cat < names:
nl позволяет также добавлять заголовок и «подвал». Они по умолчанию не нумеруются (но есть опции, меняющие это правило, см. nl --help). Чтобы выделить разделы, надо использовать такие сочетания символов: ::: (заголовок), :: (тело), : (подвал).
Посмотрим, что получилось.
Программа od выводит дамп файла в разных числовых форматах: побайтовом, десятичном, восьмеричном, шестнадцатеричном.
Создадим текстовый файл с коротким текстом «GNU/Linux».
И посмотрим, как он выглядит в числовом представлении:
Нечто малопонятное. Дело в том, что по умолчанию дамп отображается в восьмеричном двубайтовом формате. Но при этой записи не видны границы байтов: ведь каждой восьмеричной цифре соответствует триада битов, а в байте битов восемь. Было бы удобнее просмотреть дамп в шестнадцатеричной записи: две шестнадцатеричные цифры четко соответствуют одному байту. Давайте изменим формат. Для этого применяется ключ -t (в полной версии format) с указанием кода формата. Нас интересует шестнадцатеричная запись. Ее код — x.
Или другой вариант этой команды — od --format=x gnulinux. Обе эти команды должны выдать одинаковый результат.
Тоже не слишком красноречиво...
Здесь данные представлены как шестнадцатеричные числа из четырех байт. Байты идут либо от младшего к старшему, либо наоборот («тупоконечная»). Для числового вывода текстового файла запись нужна «тупоконечная» — тогда порядок байтов будет соответствовать порядку символов. Увы, команда od выводит шестнадцатеричные числа в «остроконечной» форме. Но к коду формата можно приписать число, задающее длину выводимых чисел в байтах. Так, x1 означает, что выводится по одному байту, x2 — по два байта, x4 — по четыре. Давайте выведем по одному байту — od -t x1 gnulinux или od --format=x1 gnulinux. И вот теперь стало все понятно.
Эти байты являются значениями каждого символа в кодировке ASCII в их шестнадцатеричной записи. Сопоставив каждый символ его числовому значению в ASCII, получим следующее:
1. Часть I;
2. Часть II;
3. Часть III;
4. Часть IV;
5.
6. Часть VI.
Следующая программа — nl (эн-эль). Она добавляет номер к каждой строке. Например, перечислим пару культовых имен мира СПО и посмотрим, как эта программа сохранит их в файл.
Смотрим, что получилось — cat < names:
1. Ричард Столлман
2. Линус Торвальдс
— имена оказались пронумерованными.nl позволяет также добавлять заголовок и «подвал». Они по умолчанию не нумеруются (но есть опции, меняющие это правило, см. nl --help). Чтобы выделить разделы, надо использовать такие сочетания символов: ::: (заголовок), :: (тело), : (подвал).
Посмотрим, что получилось.
cat < freeosПрограмма od выводит дамп файла в разных числовых форматах: побайтовом, десятичном, восьмеричном, шестнадцатеричном.
Создадим текстовый файл с коротким текстом «GNU/Linux».
И посмотрим, как он выглядит в числовом представлении:
Нечто малопонятное. Дело в том, что по умолчанию дамп отображается в восьмеричном двубайтовом формате. Но при этой записи не видны границы байтов: ведь каждой восьмеричной цифре соответствует триада битов, а в байте битов восемь. Было бы удобнее просмотреть дамп в шестнадцатеричной записи: две шестнадцатеричные цифры четко соответствуют одному байту. Давайте изменим формат. Для этого применяется ключ -t (в полной версии format) с указанием кода формата. Нас интересует шестнадцатеричная запись. Ее код — x.
od -t x gnulinuxИли другой вариант этой команды — od --format=x gnulinux. Обе эти команды должны выдать одинаковый результат.
0000000 2f554e47 756e694c 00000a78 0000012Тоже не слишком красноречиво...
Здесь данные представлены как шестнадцатеричные числа из четырех байт. Байты идут либо от младшего к старшему, либо наоборот («тупоконечная»). Для числового вывода текстового файла запись нужна «тупоконечная» — тогда порядок байтов будет соответствовать порядку символов. Увы, команда od выводит шестнадцатеричные числа в «остроконечной» форме. Но к коду формата можно приписать число, задающее длину выводимых чисел в байтах. Так, x1 означает, что выводится по одному байту, x2 — по два байта, x4 — по четыре. Давайте выведем по одному байту — od -t x1 gnulinux или od --format=x1 gnulinux. И вот теперь стало все понятно.
0000000 47 4e 55 2f 4c 69 6e 75 78 0a 0000012Эти байты являются значениями каждого символа в кодировке ASCII в их шестнадцатеричной записи. Сопоставив каждый символ его числовому значению в ASCII, получим следующее:
0x47 (G), 0x4e (N), 0x55 (U), 0x2f (/), 0x4c (L), 0x69 (i), 0x6e (n), 0x75 (u), 0x78 (x), 0x0a (перевод строки)