Якщо спочатку видалити всі newline, то все працює
так, проте працює не так, як треба — в цім випадку tr поєднує увесь текст в один рядок, а це не зовсім (зовсім не) те, що потрібно, бо на вході маю кілька довгих рядків, кожен з котрих тре розбить на короткі — але зберігши оригінальні lf…
…я бачу, що не до кінця розумію логіку мною ж запропонованої команди для sed’а, може хто розтлумачить докладно, що саме я впустив з виду?
p.s. ага, починаю розуміти — проблема в тім пробілі після \} у regexp’і, котрий не дозволяє sed’ові взяти увесь останній рядок, змушуючи розбивати його на частини аж допоки в остатку не буде жодного пробілу =( теоретично треба змусити його розбивати рядок або на пробілі — або на кінцевому $, але як? $ в або-групі [] інтерпретується дослівно, а не позначає кінець рядка…
p.p.s. тимчасове рішення: перед поділом на рядки додати до поточного рядка кінцевий пробіл…
sed -e 's/$/ /' -e :a -e 's/^\(.\{1,40\} \)/\1\n/;P;D;ta'
побічний ефект — у виводі текст ділиться на «абзаци» зайвим lf — мене влаштовує. але це не елегантно =(