учора не виспався: пізно вклався, а ще вікно залишив закритим (комунальники чудово підготувалися до холодів: не включили опалення, ще й гарячу воду відключили, бо щось десь поламали); над ранок голова була важка, як сніп.
а вкладався пізно, бо пригадував (не)просту текстову магію. хотів накидати робочу версію скрипта для виводу twitter-стрічки на стільницю — але спершу треба зрозуміти, як за допомогою sed’а відформатувати текст. отже…
по-перше, twidge (консольний twitter-клієнт для linux) забезпечує завантаження останніх 20 твітів зі стрічки:
twidge lsarchive -l
ключик -l видає «довгий» формат — п’ять полів, розділених табуляцією (тут третє пусте):
126549795966955521 tivasyk визначення sedust в urban dictionary порвало на шмаття =) http://t.co/EBC28yF7 Wed Oct 19 06:46:37 +0000 2011
126406168645074944 tivasyk от же ж бісів sed! гризу його, гризу — а воно ж огризається =/ Tue Oct 18 21:15:53 +0000 2011
далі sed, порціонально. ось так прибираю ідентифікатор на початку рядка разом із наступним символом табуляції:sed -e 's/^[^\t]*\t//'
залишившши tivasyk, видаляю дві табуляції поспіль (щоправда, тут припускаю, що більше такі пари ніде не повторюються, що, в принципі, не гарантовано… але наразі працює) і додаю розділювач:sed -e 's/\t\t/› /'
видаляю увесь останній блок з датою/часом публікації (знову-таки, з припущенням, що він таки останній):sed -e 's/\t.*$//'
про всяк випадок скорочую дубльовані пробіли, якщо знайдуться:sed -e 's/ \+/ /g'
нарешті заміняю гіперпосилання (навіщо вони у виводі conky на стільниці, де їх не можна клікнути?) позначкою [↗]; попередньо додаю пробіл в кінець рядка (щоби правильно впізнати посилання між http:// і найближчим пробілом), а по завершенні видаляю його, якщо виявився непотрібним:sed -e 's/$/ /g;s/http:[^ ]*[ ]/[↗] /g;s/ $//'
лишається об’єднати всі команди в один рядок:twidge lsarchive -l | sed -e 's/^[^\t]*\t//' -e 's/\t\t/› /' -e 's/\t.*$//' -e 's/ \+/ /g' -e 's/$/ /g;s/http:[^ ]*[ ]/[↗] /g;s/ $//'
…і отримати на виводі таке:tivasyk› визначення sedust в urban dictionary порвало на шмаття =) [↗]
tivasyk› от же ж бісів sed! гризу його, гризу — а воно ж огризається =/
втім, ще не все — хочеться розбити тепер довгі рядки на фрагменти не більше 50 символів. з цим проблема: не второпаю дібрати правильний набір команд для sed’а. хто дружить із цією sedgy seductrice — підкажіть варіант?оновлення. здається, впорався: читайте, як.
p.s. так, я знаю, звідки скріншот. поставив свідомо — по-перше, пасує до заголовка (вміст) і тексту (форма); по-друге, великоднє яєчко назло нацкомісії з моралі.