sed -e 's/\([^ ]\{39\}\)\([^ ]\)/\1 \2/g'
працює так: шукає нерозривний блок з 39-ти будь-яких символів окрім пробілу, за яким йде ще один не-пробіл (\([^ ]\))— і всталяє один пробіл перед цим останнім не-пробілом (\1 \2). g змушує повторювати операцію до кінця рядка.отже, тепер можна позбутися головного недоліку попередньої версії sed-фільтра для форматування twitter-стрічки — і будь-якого іншого текстового потоку — для виводу на стільницю!
вся команда:
перекомпонував трішки різні блоки. тепер послідовність операцій (кожен блок зі своїм -e) така:sed -e 's/^[^\t]*\t//;s/\t\t/› /;s/\t.*$//' -e 's/ \+/ /g'
-e 's/$/ /g;s/http:[^ ]*[ ]/[↗] /g;s/ $//'
-e 's/\([^ ]\{40\}\)\([^ ]\)/\1 \2/g' -e 's/^/♀/;s/$/♂/;s/♀*\( *.\{1,40\}\)[ ♂]/\1\n/g' -e 's/[[:space:]]$//'
- у виводі twidge залишаємо лише відправника і текст;
- якщо є кілька пробілів поспіль — скорочуємо до одного;
- заміняємо гіперпосилання простим [↗];
- якщо в тексті є нерозривні фрагменти, довші 40 символів — примусово розбиваємо пробілом;
- розбиваємо текст на окремі рядки не довше 40 символів;
- видаляємо зайвий символ переносу рядка наприкінці.
sed -e '/^[[:space:]]*$/d' -e 's/ \+/ /g;s/\x0D$//' -e 's/$/ /g;s/http:[^ ]*[ ]/[↗] /g;s/ $//' -e 's/\([^ ]\{40\}\)\([^ ]\)/\1 \2/g' -e 's/^/♀/;s/$/♂/;s/♀*\( *.\{1,40\}\)[ ♂]/\1\n/g' -e 's/[[:space:]]$//'
ну й наостанок скріншот, який показує, що ж я хочу отримати на стільниці після всього. скріншот «живий» — це те, що вже працює.продовження буде!