初学者写脚本,高手指点下啊!!!【版本二】
时间:2011-08-27
来源:互联网
脚本功能:以notify方式提醒shell区最新回复/主题 只显示五个主题
显示格式“标题前十字符...最后作者@时间”
我是新手,使用的方法可能比较笨,请赐教。
合并foo1.dat foo2.dat得到
暂时只能想到一行一行的合并。
显示格式“标题前十字符...最后作者@时间”
我是新手,使用的方法可能比较笨,请赐教。

引用:
在合并数据时遇到麻烦
代码:
cat foo1.dat
abc abcabc
dcd dcddcd
abc abcabc
dcd dcddcd
代码:
cat foo2.dat
7890
jklm
7890
jklm
合并foo1.dat foo2.dat得到
引用:
abc abcabc 7890
dcd dcddcd jklm
dcd dcddcd jklm
暂时只能想到一行一行的合并。
代码: [ 下载 ] [ 隐藏 ]
使用 bash 语法高亮
#!/bin/zsh
# 使用到的命令/语法
# 变量 条件测试 while循环 mkdir curl 输出重定向到文件和/dev/null 反单引号 cat 管道 echo grep 正则表达式 perl sed head awk for循环 tr if...;then fi notify-send sleep
old=''
[ -d /tmp/test ] || mkdir /tmp/test
cd /tmp/test
while :
do
curl -s "http://forum.ubuntu.org.cn/viewforum.php?f=21" 2>/dev/null >forum.dat
data=`cat forum.dat`
title=`echo "$data" | grep -oP '[^ ]*topictitle.*' | perl -pe 's|.*title"\>(.*?)\<\/a>.*|\1|' | sed -n '6,$p' | head -5 | sed -r 's/^(.{10}).*/\1\.../'`
name=`echo $data | grep 'class="topicdetails"><a'|perl -pe 's|.*\>(.*?)\<.*|\1|' | sed -n '6,$p' | head -5`
last=`echo $data | grep '"topicdetails" style'|perl -pe 's|.*\>(.*?)\<.*|\1|' | sed '1~2d' | sed -n '6,$p' | head -5 | awk '{print "@"$2}'`
for i in {1..5};do echo $title | sed -n "${i}p">line$i.dat;echo $name | sed -n "${i}p" | tr '\n' '\034' >>line$i.dat;done;
titlename=`cat line?.dat | tr -d '\n' | tr '\034' '\n'`
for i in {1..5};do echo ${titlename} | sed -n "${i}p">line$i.dat;echo $last | sed -n "${i}p" | tr '\n' '\034' >>line$i.dat;done;
new=`cat line?.dat | tr -d '\n'|tr '\034' '\n'`
[ "$new" = "$old" ] || notify-send "$new"
old=$new
sleep 300
done
# 使用到的命令/语法
# 变量 条件测试 while循环 mkdir curl 输出重定向到文件和/dev/null 反单引号 cat 管道 echo grep 正则表达式 perl sed head awk for循环 tr if...;then fi notify-send sleep
old=''
[ -d /tmp/test ] || mkdir /tmp/test
cd /tmp/test
while :
do
curl -s "http://forum.ubuntu.org.cn/viewforum.php?f=21" 2>/dev/null >forum.dat
data=`cat forum.dat`
title=`echo "$data" | grep -oP '[^ ]*topictitle.*' | perl -pe 's|.*title"\>(.*?)\<\/a>.*|\1|' | sed -n '6,$p' | head -5 | sed -r 's/^(.{10}).*/\1\.../'`
name=`echo $data | grep 'class="topicdetails"><a'|perl -pe 's|.*\>(.*?)\<.*|\1|' | sed -n '6,$p' | head -5`
last=`echo $data | grep '"topicdetails" style'|perl -pe 's|.*\>(.*?)\<.*|\1|' | sed '1~2d' | sed -n '6,$p' | head -5 | awk '{print "@"$2}'`
for i in {1..5};do echo $title | sed -n "${i}p">line$i.dat;echo $name | sed -n "${i}p" | tr '\n' '\034' >>line$i.dat;done;
titlename=`cat line?.dat | tr -d '\n' | tr '\034' '\n'`
for i in {1..5};do echo ${titlename} | sed -n "${i}p">line$i.dat;echo $last | sed -n "${i}p" | tr '\n' '\034' >>line$i.dat;done;
new=`cat line?.dat | tr -d '\n'|tr '\034' '\n'`
[ "$new" = "$old" ] || notify-send "$new"
old=$new
sleep 300
done
格式化 0.015 秒, 使用 GeSHi 1.0.8.4
作者: 我就是我2 发布时间: 2011-08-27
你不能perl搞定么?
作者: ChenFengyuan 发布时间: 2011-08-27
ChenFengyuan 写道:
你不能perl搞定么?
我搞不定。我不会perl

作者: 我就是我2 发布时间: 2011-08-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28