发表于 : 2008-03-14 19:44
遇到一个小小的困难....
代码: 全选
☎ cat auto-pic.bash
#!/bin/bash
[ -z "$1" ] && echo "需要指定搜索的日期。" && exit;
cd /home/media/restricted-picture/
for i in 1 2 3 4 5
do
wget -nc --no-cookies http://www.xx.net/bbs/forumdisplays_22_1000_desc_lastpost_30_$i.html -O $i.htm
cat $i.htm|tr '>' '\n'|tr '"' '\n'|grep "^[0-9][0-9]-\|^show.*html"|sed "s/\ [0-9][0-9]:.*$//"|tr '\n' ','|sed s/,[^,]*[0-9],s/\\ns/g|grep $1>$i-$1.lst
done
cat *-$1.lst|sed s/l,[0-9][^l]*$/l/g|sed s/^s[^,]*,//|tr , '\n'|sed s/^/http:\\/\\/www.imagegarden.net\\/bbs\\//>$1.list
rm *.htm *.lst *.html
wget -nc -i $1.list
rm *.list
for i in *.html
代码: 全选
tr '\n' '\0' |perl -pe "s@<(T\d+)>.*</\1>@@g"|tr '\0' '\n'
举一个..iblicf 写了:谁说不能 N n
代码: 全选
title: test
foo<T1>bar
123
bar</T1>
Tag for T1 is 123
barfoo<T2>bar
321
foobar</T2>bar
问题就在这里eexpress 写了:跨行不好的。改那FS什么的环境变量。主要是脚本结束的时候,不知道如何写恢复的。
所以,还是tr替换掉/n好些。搞完,再替换回来。
那你怎么知道哪个字符原文没有用过?eexpress 写了:头天不是说过了。找一个特殊的字符而已。我的情况,就用,逗号。只要和原始关键字符不冲突的,无关紧要的,就可以。就是17楼的tr ,的写法。你甚至可以替换成●啊。只要原文不用的。
改成\\n都可以的哦。
那环境变量的,以前搞好久,不舒服的,没找到缺省的写法,导致不能恢复,如果不恢复,有些龌龊的。你也可以研究下。