Як використовувати команду fold в Linux

| | 0 Comments| 2:39 AM
Categories:

Команда Linux fold приносить непокірний результат на п’яту. Читайте великі шматки тексту, нескінченні рядки та неформатовані потоки, керуючи шириною виводу. Дізнайтеся, як.

Як працюють рядки тексту в терміналі Linux

Перше правило боротьби з Linux: знай свого ворога. Тож давайте визначимо це. Що саме таке рядок тексту? Це послідовність символів — літер, цифр, символів і пробілів, — яка закінчується спеціальним байтом, що означає «почати новий рядок». У Linux і Unix, символ нового рядка, також званий переведенням рядка, використовується як індикатор кінця рядка. Це байт зі значенням 0x0a дюймів шістнадцятковий і десять у десятковій.

Різні операційні системи використовують різні значення байтів для позначення кінця рядка. Windows використовує двобайтову послідовність. У текстових файлах Windows за символом нового рядка відразу йде символ символ повернення каретки, що дорівнює 0x0d у шістнадцятковому та тринадцять у десятковому.

  Як налаштувати папки в Linux за допомогою кольору папки

Терміни «переведення рядка» та «повернення каретки» датуються корінням до друкарської машинки. валик, циліндр, навколо якого був обгорнутий папір, був встановлений на рухомій каретці. Щоразу, коли ви натискаєте клавішу, каретка переміщується на один символ вліво. Щоб розпочати нову лінію, ви натискаєте важіль, який повертає каретку у вихідне положення, обертає валик і переміщує папір вгору на висоту однієї лінії. Ця дія була відома як повернення каретки, а обертання циліндра (і просування паперу) — як переведення рядка.

Важіль був замінений ключем, коли друкарська машинка стала електрифікованою. Ключ мав напис Carriage Return або просто Return. Деякі ранні комп’ютери, такі як BBC Micro досі використовується ім’я Return для того, що ми зараз називаємо клавішею Enter.

Символи нового рядка, як правило, не видно. Ви можете побачити лише їхній ефект. Символ нового рядка змушує програмне забезпечення, яке відображає або обробляє текст, починати новий рядок.

  Як розмістити ігровий сервер Linux Xonotic

Але в чому проблема з довгими чергами?

Текст без символів нового рядка або з дуже малою кількістю символів нового рядка буде занадто широким для зручного читання у вікні терміналу. Це дратує, але це можливо.

Більш згубною проблемою є мати справу з рядками такої довжини, що вони створюють проблему для програмного забезпечення, яке має обробляти, передавати або приймати текст. Це може бути викликано довжиною внутрішнього буфера або іншими аспектами програмного забезпечення, які ви не можете налаштувати.

Але для цього є виправлення, яке називається fold.

Перші кроки зі згином

Давайте подивимося на частину тексту, яка містить дуже і дуже довгі рядки. Зауважте, що ми тут не говоримо про речення. (Хоча текст походить із «Мобі Діка» Германа Мелвіла, тож у нас є найкраще з обох світів.)

  Як встановити клієнт Teamspeak на Linux

Рядок тексту – це все від останнього символу нового рядка (або початку файлу, якщо це перший рядок у файлі) і до наступного символу нового рядка, незалежно від того, що знаходиться між. Рядок може містити багато речень. Він може обертатися у вікні терміналу багато разів. Але це все одно один рядок тексту.

Давайте подивимося на текст у його сирому вигляді:

less moby-dick.txt

Текст відображається менше:

Текст тягнеться від одного краю вікна до іншого, а перенесення рядків потворно, і вони розривають слова в середині.

У нас є ще одна версія файлу з короткими рядками:

less short-lines-moby-dick.txt

Рядки в цьому файлі набагато коротші. Кожен рядок закінчується символом нового рядка.

Якщо ми використовуємо команду hexdump, ми зможемо подивіться на значення байтів у файлі і побачити символи нового рядка. Параметр -C (канонічний) форматує вихідні дані, щоб відображати шістнадцяткові значення в основному