есть мозговзрывная задачка на знание баша и инструментов работы с текстом (будь то awk, sed или что еще поможет в этом случае). сразу скажу - не из конкурса, а из самой что ни на есть жизни. не спрашивайте зачем, но вот надо оно мне. итак, имеем некий текст. например, такой кусок (в содержание не вникайте, не в нем суть): ============ Нечто был занят архивацией разума, а потому не заметил приближающегося к планете объекта. ему, как архивариусу, не дозволялось потерпеть утрату важных данных, поэтому один раз в цепкурский год он сохранял полное содержимое своей базы данных и отсылал полученный бэкап на защищенный сервер где-то в другом измерении вселенной. ============= и вот из него (текста на входе будет гораздо больше) требо получить такое чудо (здесь стоит смотреть в моноширинном виде, иначе все криво поедет): ============ 0001 Не чт о бы л за ня т ар хи ва ци ей р аз у 0002 ма , а по то му н е за ме ти л пр иб ли ж 0003 аю ще го ся к п ла не те о бъ ек та . ем у 0004 , ка к ар хи ва ри ус у, н е до зв ол ял о ..... 00C4 .... .... 012E .... ============ здесь первая колонка - 4-значный номер строки в hex-виде, далее идет следующее: весь входной текст разбивается на строки по 32 символа, плюя на выпадающие в начало/конец строк пробелы и пр., т.е. железко 1 строка = 32 знака. абзацное деление при этом стоит сохранить, т.е. короткие строки оставляем, следующей абзац начинаем с новой строки и опять по 32, и т.д. после чего каждая строка из 32-х символов разбиватся на группы по 2 знака, которые разделяются проблеом. грубо говоря, через каждые 2 символа вставляется пробел. таким образом, каждая строка - 16 групп по 2 символа. на оригинальные проблелы, опять же, плюем. собственно, провозился немного с первой частью - разбивкой на строки. fmt разбивает с переносом по словам, что не нужно. от pr я ничего толкового не добился. fold делает все правильно, только почему-то с кириллицей у него проблемы - в рэндомных местах в начале строк непечатные символы вместо первой буквы. взодной поток, естественно, в utf8. если даешь текст из латиницы - все нормально. в общем, знающие люди, помогите кто чем сможет. где-то я видел фичу баша в виде разделения текстовой переменной на диапазоны символов, только вот не помню, как она юзается, в мане сходу не нашел. или мб все реализуемо с помощью awk/sed? любые мысли приветствуются)))
-- ubuntu-ru mailing list ubuntu-ru@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru