Bash 用于获取数据和进行减法的shell脚本

Bash 用于获取数据和进行减法的shell脚本,bash,sed,Bash,Sed,游戏A和B的玩家: wget --output-document=- http://runescape.com/title.ws 2>/dev/null \ | grep PlayerCount \ | head -1l \ | sed 's/^[^>]*>//' \ | sed "s/currently.*$/$(date '+%r %b %d %Y')/" \ | cut -d">" -f 3,4 \ | sed 's

游戏A和B的玩家:

 wget --output-document=- http://runescape.com/title.ws 2>/dev/null \
    | grep PlayerCount \
    | head -1l \
    | sed 's/^[^>]*>//' \
    | sed "s/currently.*$/$(date '+%r %b %d %Y')/" \
    | cut -d">" -f 3,4 \
    | sed 's/<\/span>//'
输出:目前有42823人在玩

我想计算有多少人玩游戏A,但我不太确定如何从这两个输出中获取数字,然后减去它们,然后以相同的格式输出,如下所示:

`111,048 people 10:43:54 PM Feb 22 2013`


一旦你把数字变成变量,用$a-$b减去它们。谢谢。只是不知道如何修剪和存储数字,然后再次显示:你说你被困在数学部分。在我看来,你似乎掌握了如何使用sed来分离字符串。嗯,我想我错了,数学部分没问题。我确实得到了使用sed编写第一个脚本的帮助。我正在尽我所能。一旦你把数字变成变量,用$a-$b减去它们。谢谢。只是不知道如何修剪和存储数字,然后再次显示:你说你被困在数学部分。在我看来,你似乎掌握了如何使用sed来分离字符串。嗯,我想我错了,数学部分没问题。我确实得到了使用sed编写第一个脚本的帮助。我已经尽力了。哇,你让它看起来很简单。有没有办法在数值结果中添加逗号?我是强迫症患者:我认为没有一种简单的方法可以在数字中添加逗号。您必须编写一个循环,以3位数字为一组来区分数字。非常感谢。除了那部分我什么都懂。我会努力学习的。嘎嘎,我的眼睛在流血。@tripleee那么你的巧妙解决方案呢?哇,你让它看起来很简单。有没有办法在数值结果中添加逗号?我是强迫症患者:我认为没有一种简单的方法可以在数字中添加逗号。您必须编写一个循环,以3位数字为一组来区分数字。非常感谢。除了那部分我什么都懂。我会努力学习的。嘎嘎,我的眼睛在流血。@tripleee那么你的灵巧解决方案呢?
`111,048 people 10:43:54 PM Feb 22 2013`
total=$(wget --output-document=- http://runescape.com/title.ws 2>/dev/null |
        sed -n '/PlayerCount/{s/^[^0-9]*<span>\([0-9,]*\).*/\1/;s/,//g;p;q;}')
gameb=$(wget --output-document=- http://oldschool.runescape.com/ 2>/dev/null | 
        sed -n '/people playing/{s/There are currently \([0-9]*\) people playing!/\1/;p;q;}')
gamea=$(($total - $gameb))
#!/bin/sh

URL1=http://runescape.com/title.ws
tot=`wget  -qO- $URL1  | grep -i PlayerCount | cut -d\> -f4 | cut -d\< -f1 | sed -e's/,//'`
URL2=http://oldschool.runescape.com
b=`wget -qO- $URL2| grep "people playing" | awk '{print $4}'`
a=`expr $tot - $b`
echo "$a people `date '+%r %b %d %Y'`"
export LC_ALL=en_US.UTF-8
a_with_comma=`echo $a | awk "{printf \"%'d\n\", \\$1}"`
echo "$a_with_comma people `date '+%r %b %d %Y'`"