|

楼主 |
发表于 2007-9-1 02:26:50
|
显示全部楼层
這樣就可以了,DOS格式的空行也能正確刪除。
[PHP]
#!/bin/sh
# 處理“新浪讀書”下載的HTML,并轉為TXT。
# 文件名可能为UTF8,文本为GB
html2txt()
{
cat $1 | \
LC_ALL=zh_CN.GBK \
sed -n \
-e '/<div id=article>/,/正文底部文字广告/p' \
-e '/<!--正文内容开始-->/,/<!--正文内容结束-->/p' -e '/正文页画中画/p' |
LC_ALL=zh_CN.GBK sed \
-e '/^[ \t; ]*$/d' \
-e '/ 连载:/d' \
-e 's/ /\r\n /g' -e 's/<[^>]*>//g' -e 's/ //g' \
-e '/<!--/,/-->/d' \
-e 's/\[上一篇\]\|\[返回\]\|\[返回目录\]\|\[下一篇\]\|上一页\|下一页\|\[\]\|\[[0-9]\]//g' \
-e '/^[ \t\n;]*\r$/D' |
LC_ALL=zh_CN.GBK grep -v 'http://book.sina.com.cn'
}
for i in `find . -name "?.shtml" | sort`; do
#echo $i
html2txt $i
done
for i in `find . -name "??.shtml" | sort`; do
#echo $i
html2txt $i
done
for i in `find . -name "???.shtml" | sort`; do
#echo $i
html2txt $i
done
[/PHP] |
|