在shell中如何取数字?
如:
<td>123</td><td>456</td><td>123</td><td>456</td><td>123</td>
如何将上面的数字取出来,并相加
grep -o '[0-9]' 用这种方式得到的结果是:
1
2
3
4
5
6
。。。。。。。。。。。
我想要结果是:
123
456
123
456
然后并相加起来?
请高手们帮忙解决呀。。。
[解决办法]
grep '[0-9]*'
[解决办法]
用sed替换</td><td>为换行符就可以了,很简单啊。
lz结贴吧。给分吧。
[解决办法]
用sed完全符合lz的要求。
[解决办法]
xxx@VS2:~$ cat /tmp/a
<td>123</td><td>456</td><td>123</td><td>456</td><td>123</td>
xxx@VS2:~$ cat /tmp/a | sed 's/<td>//g' | sed 's/<\/td>/ /g'
123 456 123 456 123
[解决办法]
xxx@VS2:~$ cat /tmp/a | sed 's/<td>//g' | sed 's/<\/td>/\n/g'
123
456
123
456
123
[解决办法]
echo "<td>123</td><td>456</td><td>123</td><td>456</td><td>123</td>"|grep -o "[0-9]\{3\}"|while read line
do
let sum=$sum+$line
echo $sum
done
[解决办法]
看看这个,虽然难点:
echo "<td>123</td><td>456</td><td>123</td><td>456</td><td>123</td>" | sed -e :a -e 's/<[^>]*>/ /g; /</N; //ba'