03

找到了txt版本的天龙八部,准备放到手机上,但发现这个版本略有瑕疵。
可能是为了在固定宽度的显示器上显示的缘故,往往到了一定字数,文章就会折行。

萧峰道:“不行!”突然拍出一掌,击向木几,只听得劈拍一声响,木几碎成
数块,匕首随而跌落,凛然说道:“杀母大仇,岂可当作买卖交易?此仇能报便报,
如不能报,则我父子毕命于此便了。这等肮脏之事,岂是我萧氏父子所屑为?”

慕容博仰天大笑,朗声说道:“我素闻萧峰萧大侠才略盖世,识见非凡,殊不
知今日一见,竟虽个不明大义、徒逞意气的一勇之夫。嘿嘿,可笑啊可笑!”

萧峰知他是以言语相激,冷冷的道:“萧峰是英雄豪杰也罢,是凡夫俗子也罢,
总不能中你圈套,成为手中的杀人之刀。”

慕容博道:“食君之禄,忠君之事。你是大辽国这臣,欲只记得父母私仇,不
思尽忠报国,如何对得起大辽?”

萧峰蹭上一步,昂然说到:“你可曾见过边关之上、宋辽相互仇杀的惨状?可
曾见过宋人辽人妻离子散、家破人亡的情景?宋辽之间好容易罢兵数十年,倘若刀
兵再起,契丹铁骑侵入南朝,你可知将有多少宋人惨遭横死?多少辽人死于非命?”
他说到这里,想起当日雁门关外宋兵和辽兵相互打草谷的残酷情状,越说越响,又
道:“兵凶战危,世间岂有必胜之事?大宋兵多财足,只须有一二名将,率兵奋战,
大辽、吐蕃联手,未必便能取胜。咱们打一个血流成河,尸骨如山,欲让你慕容氏
来乘机兴复燕国,我对大辽尽忠报国,是在保土安民,而不是为了一己的荣华富贵,
因而杀人取地、建功立业。”

忽听得长窗外一个苍老的声音说道:“善哉,善哉!萧居士宅心仁厚,如此以
天下苍生为念,当真是菩萨心肠。”

这样的格式在640*480的屏幕上可能很好,但是在iPhone上看殊为不爽。
解决方法:

awk 'BEGIN{ while(getline){ if( $0 !~ /^$/ ) printf $0; else printf "\n" } }  END{printf "\n"}'  filename

找解决方法的过程中,发现了两个附加产品:

  1. 下载txt电子书的网站(不是论坛,无需注册,虽然广告很多)
  2. GNU的awk手册(比种种学习笔记要好得多)

曾尝试用sed,不果。

Update: 20090206
针对中文书,优化了一下

for f in *; do awk 'BEGIN{ while(getline){ if( $0 !~ /^[ \t\xa1]+/ ) printf $0; else printf "\r\n%s", $0 } }  END{printf "\n"}'  $f > $f.new; done

xA1A1是全角的\t

Tagged with:
preload preload preload