求助:要从一行字符串里取出最后一个数值用shell编程怎么实现?(已解决)

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
zwdnet
帖子: 344
注册时间: 2010-06-09 15:22
送出感谢: 4 次
接收感谢: 1 次

求助:要从一行字符串里取出最后一个数值用shell编程怎么实现?(已解决)

#1

帖子 zwdnet » 2010-12-25 20:41

大家圣诞快乐!
我想从一行如下的字符串:
”9 Power_On_Hours 0x0032 090 090 000 Old_age Always - 9047“中,提取最后一个数值"9047"(这个数字是会变的),再加上我自己的字符串,比如”硬盘使用时间“之类,合并成一个字符串,最后再输出。现在的问题是怎么编程从上面的字符串中提取最后那个数值并保存成变量?是不是要用正则表达式,sed,awk之类的?这些我是基本上不会。请教大家了。
上次由 zwdnet 在 2010-12-25 23:21,总共编辑 1 次。
您好,请多关照!
tusooa
帖子: 6546
注册时间: 2008-10-31 22:12
系统: 践兔
送出感谢: 6 次
接收感谢: 10 次
联系:

Re: 求助:要从一行字符串里取出最后一个数值用shell编程怎么实现?

#2

帖子 tusooa » 2010-12-25 22:05

echo 硬盘使用时间 "$(echo xxx | rev | cut -d' ' -f1 | rev)"

代码: 全选

] ls -ld //
头像
zwdnet
帖子: 344
注册时间: 2010-06-09 15:22
送出感谢: 4 次
接收感谢: 1 次

Re: 求助:要从一行字符串里取出最后一个数值用shell编程怎么实现?

#3

帖子 zwdnet » 2010-12-25 23:20

多谢,解决了,这是完整的脚本程序:

代码: 全选

#!/bin/sh

#用smartctl查看硬盘的使用时间的脚本

HardDiskUseTime=$(sudo smartctl -A /dev/sda2 | grep Power_On_Hours)
echo 硬盘当前使用时间为 "$(echo $HardDiskUseTime | rev | cut -d' ' -f1 | rev)" 小时

您好,请多关照!
tusooa
帖子: 6546
注册时间: 2008-10-31 22:12
系统: 践兔
送出感谢: 6 次
接收感谢: 10 次
联系:

Re: 求助:要从一行字符串里取出最后一个数值用shell编程怎么实现?(已解决)

#4

帖子 tusooa » 2010-12-27 20:02

代码: 全选

echo 硬盘当前使用时间为 "$(sudo smartctl -A /dev/sda2 | grep Power_On_Hours | rev | cut -d' ' -f1 | rev)" 小时
不就行了

代码: 全选

] ls -ld //
回复

回到 “Shell脚本”