我要啦免费统计
  • ubuntu,小小小脚本 - [电脑生活]

    2009-03-22

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://pchu.blogbus.com/logs/36873645.html

    show show 最近一段时间写的小小小脚本,类似内容可见上一次的日志

    howbig

    #!/bin/bash
    echo -e 'HEAD '$1' HTTP/1.0\n\n' | nc 10.0.254.254 3128 | grep Content-Length

    作用:用netcat向局域网网关发送文件头信息,并grep出文件大小信息(字节),参数-e是为了它能辩认转义符\n(回车)

    升级版的vremind

    #!/bin/bash
    d=`date +%m%d%H%M`
    cd $HOME/tmp/
    rec -r 44100 $d.ogg
    sox $d.ogg -n trim 0 1.5 noiseprof | sox $d.ogg tmp.ogg vol 10 dB noisered - 0.2
    mv tmp.ogg $d.ogg
    for t in $@ ; do
      if [ `expr index "$t" ':'` -eq 0 ]
      then echo "play $HOME/tmp/$d.ogg" | at NOW+$t min
      else echo "play $HOME/tmp/$d.ogg" | at $t
      fi
    done

    作用:先用44100Hz采样率录音,然后生成噪音采样(noiseprof),去噪(noisered)放大音量后存为tmp.ogg再覆盖原录音文件。否则,若一边音频处理一边写入录音文件,会导致文件损坏,丢了25秒左右以后的内容。调用vremind时可以有多个参数,数字参数表示若干分钟后重放,时间(中间有冒号)参数规定重放时刻,可以多次重放。

    jandan

    #!/bin/bash
    cd $HOME/tmp
    wget -nv http://jandan.net/new -O - | grep -o http://jandan\.net/2.*html > old.lst
    while [ true ] ; do
    wget -nv  http://jandan.net/new -O - | grep -o http://jandan\.net/2.*html > new.lst
    sf=`diff old.lst new.lst | grep \> | sed -e 's/> //g'`
    echo $sf
    for url in $sf ; do
    id=`wget -nv $url -O - | sed -n 's/<div class=\"post" id=\"post-\(.*\)\">/\1/p'`
    curl http://jandan.net/wp-comments-post.php --cookie $HOME/jandan_cookies.txt -F "author=pchu" -F "email=username@gmail.com" -F "url=" -F "comment=沙发~" -F "comment_post_ID=$id"
    done
    mv new.lst old.lst
    sleep 2
    done

    作用:煎蛋(jandan.net)的抢沙发机器人,请手动准备好cookies。首先获取文章更新列表放着(只需找2打头的html文件),然后每两秒循环,下一个新的列表,diff一下,用grep \>定位多出来的文章。然后下载该页面,找到该文章的post-id,最后用curl模拟发评论动作,送上cookies、用户名、email,当然还有宝贵的“沙发~”

    fanfou

    #!/bin/bash
    curl -u username@gmail.com -d status="$@" http://api.fanfou.com/statuses/update.xml &>/dev/null

    作用:更新饭否,命令打完回车后,还要输入密码并回车(终端不会显示出来)。当然也可以用cookies解决。

    jiwai

    #!/bin/bash
    curl -u username@gmail.com -d status="$@" http://api.jiwai.de/statuses/update.xml &>/dev/null

    作用:同上

    fren

    #!/bin/bash
    if [ "$1" == "?" ]
     then
     shift
     sdcv -u "Larousse Chambers français-anglais" $@
     else
     sdcv -u "Larousse Chambers français-anglais" $@ | dictwrap
    fi

    作用:用sdcv (StarDict Commandline Version)查法英词典,如果第一个参数是问号,则直接调用sdcv(单词拼错时会有纠错提示);否则把查到的解释传给另一个脚本dictwrap。(因为Larousse Chanbers词典的解释有大量的html标签)

    enfr

    #!/bin/bash
    if [ "$1" == "?" ]
     then
     shift
     sdcv -u "Larousse Chambers English-French" $@
     else
     sdcv -u "Larousse Chambers English-French" $@ | dictwrap
    fi

    作用:同上

    dictwrap

    #!/bin/bash
    grep $@ -v ^"Found 1 items, similar to" |grep -v ^"-->" | grep -v ^$ | sed -e "s/<BR>/\n/g;s/&amp;/\&/g;s/<FONT color=\"#A50021\"><B>/`echo -e '\e[1;31m'`/g;s/<\/B><\/FONT>/`echo -e \\\e[0m`/g;s/<FONT color=\"blue\">/`echo -e '\e[34;40m'`/g;s/<FONT color=\"#A50021\">/`echo -e '\e[32;40m'`/g;s/<FONT color=\"#74726D\">\(.\{,40\}\)<\/FONT>/`echo -e '\e[2m'`\1`echo -e '\e[22m'`/g;s/<\/FONT>/`echo -e \\\e[0m`/g;s/<B>/`echo -e \\\e[1m`/g;s/<\/B>/`echo -e \\\e[21m`/g;s/<I>/`echo -e '\e[4m'`/g;s/<\/I>/`echo -e '\e[24m'`/g;s/<CHARSET c=\"T\">2014;<\/CHARSET>//g"

    作用:先把空行和无聊的字眼去掉,然后把<BR>换成回车转义符,把&amp换成&号,再用ANSI颜色控制码解释各个html标签,比如把<FONT color="#A50021"><B>换成\e[1;31m,其中1表示粗体,31表示红色,同时由于用到转义符\e,echo要加-e参数。


    历史上的今天:

    .vimperatorrc 2009-03-22

    收藏到:Del.icio.us




    评论

  • 这个怎么用在饭否上呀?
    pchu回复li说:
    比如说你把这两行代码保存成 ~/bin/fanfou,然后右键-属性-权限-允许执行。那么只要在终端键入
    fanfou 要说的话 (回车)
    (光标在闪)打密码(回车)
    即可
    2009-03-26 06:16:06
  • 哦,原来如此。谢谢~
    那请问你有他的联系方式吗?
    或者,你可以帮忙通知一下,让他有空上qq时,加入83341863这个Q群吗?
    再次感谢。
  • 借问声你是姜卓昆吗?你的小学是佛山九小吗?
    pchu回复regina Tam说:
    姜卓昆是和我一样今年考concours,不过是我上一届的,不过都是华附人。在我的blog里留言自称为 J 的那位便是
    2009-03-23 04:21:14