Portál AbcLinuxu, 24. října 2025 13:29
Dělám k jednomu programu kromě XHTML a PDF výstupu i výstup v prostém textu.
Ten text tedy už vygenerovaný mám, ale potřeboval bych ho zalomit na 80 znacích, aby se četl dobře v terminálu. Tohle skoro funguje:
cat vstup.txt | fmt -w 80 -s > výstup.txt
Akorát je problém v tom, že mám v tom textu odrážky a generuje mi to:
text odstavce - odrážka … pokračování textu orážky - odrážka … pokračování textu orážky
ale já bych tam chtěl mít tohle:
text odstavce
- odrážka …
pokračování textu orážky
- odrážka …
pokračování textu orážky
Zatím jsem tam dal tuhle prasárnu:
cat vstup.txt | fmt -w 74 -s | sed -E 's/( +)([^- ])/\1 \2/g' > výstup.txt
Což sice dává přijatelný výsledek, ale není to úplně ono, protože z prvního řádku to ukousne pár znaků (na tom řádku toho mohlo být více a zalomí se zbytečně brzy) a taky musím znát předem maximální počet zanoření odrážek (v tomhle případě 3: 80-3×2 = 74).
Čistě bych to uměl tak, že bych do toho vstup.txt negeneroval odrážky jako „ - “ ale jako nějakou speciální značku na samostatný řádek a pak bych tam ty „ - “ doplnil až dodatečně (až po zalomení řádků) třeba AWKčkem.
Napadá váš něco jednoduššího a hezčího?
Zajímá mě spíš co nejjednodušší1 řešení konkrétního problému. Asi to bude chtít napsat patch pro fmt.
[1] z hlediska závislostí, komplexity
#[1]Obsah stránky
dnes 11:03 [2]Přihlášení, [3]Registrace
Hledávání ______________ Hledej [4]Nápověda
_______________________________________________________________________
Dotaz: Zalomení prostého textu s odrážkami
xkucf03 avatar včera 00:51 [5]xkucf03 | skóre: 48 | blog: [6]xkucf03
Zalomení prostého textu s odrážkami
Přečteno: 124×
[7]Odpovědět | [8]Admin
Dělám k jednomu programu kromě XHTML a PDF výstupu i výstup v prostém
textu.
Ten text tedy už vygenerovaný mám, ale potřeboval bych ho zalomit na 80
znacích, aby se četl dobře v terminálu. Tohle skoro funguje:
cat vstup.txt | fmt -w 80 -s > výstup.txt
Akorát je problém v tom, že mám v tom textu odrážky a generuje mi to:
text odstavce
- odrážka …
pokračování textu orážky
- odrážka …
pokračování textu orážky
ale já bych tam chtěl mít tohle:
text odstavce
- odrážka …
pokračování textu orážky
- odrážka …
pokračování textu orážky
Zatím jsem tam dal tuhle prasárnu:
cat vstup.txt | fmt -w 74 -s | sed -E 's/( +)([^- ])/\1 \2/g' >
výstup.txt
Což sice dává přijatelný výsledek, ale není to úplně ono, protože
z prvního řádku to ukousne pár znaků (na tom řádku toho mohlo být více
a zalomí se zbytečně brzy) a taky musím znát předem maximální počet
zanoření odrážek (v tomhle případě 3: 80-3×2 = 74).
Čistě bych to uměl tak, že bych do toho vstup.txt negeneroval odrážky
jako „ - “ ale jako nějakou speciální značku na samostatný řádek a pak
bych tam ty „ - “ doplnil až dodatečně (až po zalomení řádků) třeba
AWKčkem.
Napadá váš něco jednoduššího a hezčího?
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají
směr. [9]Frantovo.cz, [10]SQL-DK, [11]Relational pipes
[INS: :INS]
Nástroje: [12]Začni sledovat (0) [13]?Zašle upozornění na váš email při
vložení nového komentáře.
Odpovědi
Josef Kufner avatar včera 03:44 [14]Josef Kufner | skóre: 69
Rozbalit Rozbalit vše Re: Zalomení prostého textu s odrážkami
[15]Odpovědět | | Sbalit | [16]Link | [17]Blokovat | [18]Admin
Koukni na Pandoc. Nebo vezmi ten HTML výstup a pošli ho do Lyxu.
Hello world [19]! Segmentation fault (core dumped)
xkucf03 avatar dnes 00:07 [20]xkucf03 | skóre: 48 | blog: [21]xkucf03
Rozbalit Rozbalit vše Re: Zalomení prostého textu s odrážkami
[22]Odpovědět | | Sbalit | [23]Výše | [24]Link | [25]Blokovat |
[26]Admin
Zajímá mě spíš co nejjednodušší^1 řešení konkrétního problému. Asi to
bude chtít napsat patch pro fmt.
[[1] z hlediska závislostí, komplexity ]
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají
směr. [27]Frantovo.cz, [28]SQL-DK, [29]Relational pipes
[30]Založit nové vlákno • [31]Nahoru
[32]Tiskni Sdílej: [33]Linkuj [34]Jaggni to [35]Vybrali.sme.sk
[36]Google [37]Del.icio.us [38]Facebook
_______________________________________________________________________
Anketa
Kdy jste naposledy viděli počítač s připojeným běžícím CRT monitorem?
(*) tento týden (20%) **
( ) tento měsíc (4%)
( ) tento rok (11%) *
( ) během posledních 5 let (39%) ****
( ) dříve (25%) ***
( ) nikdy (2%)
Celkem 259 hlasů [39]Komentářů: 22
Hlasuj
Služby
[40]Poradna [41]FAQ [42]Hardware [43]Software [44]Články [45]Učebnice
[46]Blogy [47]Slovník [48]Osobnosti [49]Ankety [50]Ovladače [51]Bazar
[52]Práce
O serveru
[53]Požadavky [54]Bugzilla [55]RSS a PDA [56]Propagace [57]Tým
AbcLinuxu [58]Pište pro abclinuxu ISSN 1214-1267
References
1. http://www.abclinuxu.cz/poradna/linux/show/449345#obsah
2. http://www.abclinuxu.cz/Profile;jsessionid=psz4iwoi4zdughmg23g9yo8j?action=login
3. http://www.abclinuxu.cz/EditUser;jsessionid=psz4iwoi4zdughmg23g9yo8j?action=register
4. http://www.abclinuxu.cz/doc/napoveda/hledani
5. http://www.abclinuxu.cz/lide/xkucf03
6. http://www.abclinuxu.cz/blog/xkucf03
7. http://www.abclinuxu.cz/EditDiscussion/449345;jsessionid=psz4iwoi4zdughmg23g9yo8j?action=add&dizId=239806&threadId=0
8. http://www.abclinuxu.cz/EditRequest/449345;jsessionid=psz4iwoi4zdughmg23g9yo8j?action=comment&threadId=0
9. https://blog.frantovo.cz/
10. https://sql-dk.globalcode.info/
11. https://relational-pipes.globalcode.info/
12. http://www.abclinuxu.cz/EditMonitor/449345;jsessionid=psz4iwoi4zdughmg23g9yo8j?action=start
13. http://www.abclinuxu.cz/poradna/linux/show/449345
14. http://www.abclinuxu.cz/lide/jkufner
15. http://www.abclinuxu.cz/EditDiscussion/449345;jsessionid=psz4iwoi4zdughmg23g9yo8j?action=add&dizId=239806&threadId=1
16. http://www.abclinuxu.cz/poradna/linux/show/449345#1
17. http://www.abclinuxu.cz/EditUser;jsessionid=psz4iwoi4zdughmg23g9yo8j?action=toBlacklist&bUid=2405&url=/show/449345#1
18. http://www.abclinuxu.cz/EditRequest/449345;jsessionid=psz4iwoi4zdughmg23g9yo8j?action=comment&threadId=1
19. http://josef.kufner.cz/
20. http://www.abclinuxu.cz/lide/xkucf03
21. http://www.abclinuxu.cz/blog/xkucf03
22. http://www.abclinuxu.cz/EditDiscussion/449345;jsessionid=psz4iwoi4zdughmg23g9yo8j?action=add&dizId=239806&threadId=2
23. http://www.abclinuxu.cz/poradna/linux/show/449345#1
24. http://www.abclinuxu.cz/poradna/linux/show/449345#2
25. http://www.abclinuxu.cz/EditUser;jsessionid=psz4iwoi4zdughmg23g9yo8j?action=toBlacklist&bUid=12329&url=/show/449345#2
26. http://www.abclinuxu.cz/EditRequest/449345;jsessionid=psz4iwoi4zdughmg23g9yo8j?action=comment&threadId=2
27. https://blog.frantovo.cz/
28. https://sql-dk.globalcode.info/
29. https://relational-pipes.globalcode.info/
30. http://www.abclinuxu.cz/EditDiscussion;jsessionid=psz4iwoi4zdughmg23g9yo8j?action=add&threadId=0&dizId=239806&rid=449345
31. http://www.abclinuxu.cz/poradna/linux/show/449345#www-abclinuxu-cz
32. http://www.abclinuxu.cz/poradna/linux/show/449345?varianta=print
33. http://www.abclinuxu.cz/sdilej?rid=449345&s=link
34. http://www.abclinuxu.cz/sdilej?rid=449345&s=jag
35. http://www.abclinuxu.cz/sdilej?rid=449345&s=sme
36. http://www.abclinuxu.cz/sdilej?rid=449345&s=google
37. http://www.abclinuxu.cz/sdilej?rid=449345&s=del
38. http://www.abclinuxu.cz/sdilej?rid=449345&s=fb
39. http://www.abclinuxu.cz/ankety/crt-monitor-2019
40. http://www.abclinuxu.cz/poradna
41. http://www.abclinuxu.cz/faq
42. http://www.abclinuxu.cz/hardware
43. http://www.abclinuxu.cz/software
44. http://www.abclinuxu.cz/clanky
45. http://www.abclinuxu.cz/ucebnice
46. http://www.abclinuxu.cz/blog
47. http://www.abclinuxu.cz/slovnik
48. http://www.abclinuxu.cz/kdo-je
49. http://www.abclinuxu.cz/ankety
50. http://www.abclinuxu.cz/ovladace
51. http://www.abclinuxu.cz/bazar
52. http://www.abcprace.cz/
53. http://www.abclinuxu.cz/pozadavky;jsessionid=psz4iwoi4zdughmg23g9yo8j
54. http://bugzilla.abclinuxu.cz/
55. http://www.abclinuxu.cz/napoveda/rss-a-jine-pristupy
56. http://www.abclinuxu.cz/portal/propagace
57. http://www.abclinuxu.cz/clanky/show/44049
58. http://www.abclinuxu.cz/clanky/novinky/pojdte-psat-pro-abclinuxu.cz
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.