Chinaunix
标题:
shell脚本有乱码,求教
[打印本页]
作者:
好看的附件
时间:
2010-07-07 10:16
标题:
shell脚本有乱码,求教
各位大虾,
我抓取top命令中的输出值,其中有两个值分别放到2个变量中,查看两个变量显示为:62940,681632
但是当我除法运算报错,fatal: division by zero attempted 。 我把这两个变量输出到文件中查看发现,
文件中显示有乱码,^[[m^O^[[m^O62940,^[[m^O^[[m^O681632 ,请问如何能把这个乱码去掉啊,不是空格。。
作者:
Shell_HAT
时间:
2010-07-07 10:18
把你的代码贴出来看看?
作者:
好看的附件
时间:
2010-07-07 10:21
`top -n 1|grep "Mem:"|sed -e 's/ *//g'`
作者:
好看的附件
时间:
2010-07-07 10:23
这是放到2个变量中
total=`echo ${mem#*':'}|awk -F',' '{print $1}'|awk -Fk '{print $1}'`
used=`echo ${mem#*':'}|awk -F',' '{print $2}'|awk -Fk '{print $1}'`
echo "$total,$used"
作者:
Shell_HAT
时间:
2010-07-07 10:23
除法在哪里?咋不肯贴全呢?
作者:
好看的附件
时间:
2010-07-07 10:26
echo "$used,$total"|awk -F, 'END{printf("%.2f",$1/$2)}'
问题应该不是除法的问题,因为我把那两个变量值换为具体值就正确
作者:
好看的附件
时间:
2010-07-07 10:27
运行top -n 1|grep "Mem:"抓取出来的内容为:
Mem: 255264k av, 129684k used, 125580k free, 0k shrd, 21824k buff
作者:
blacknew
时间:
2010-07-07 10:29
没Linux环境,应该是top里面的控制字符,为了显示出粗体或者高亮等效果。
可以试试 top -b -n 1
或者输出时用 col -b 过滤下
作者:
好看的附件
时间:
2010-07-07 10:32
我运行那个显示
[root@localhost shell]#top -b -n 1
'dumb': unknown terminal type.
作者:
lkk2003rty
时间:
2010-07-07 10:32
感觉应该是top 时候没有加-b从而导致重定向的文件乱码的问题
2楼上 黑哥马甲?
作者:
好看的附件
时间:
2010-07-07 10:44
在显示的时候我在过滤多个空格的时候,过滤不掉,可以匹配上,很奇怪,我把空格用.过滤
过滤前:
Mem: 681632k total, 44828k used, 636804k free, 2892k buffers
过滤后:
[root@localhost shell]# top -n 1|grep "Mem:"|sed 's/[[:space:]][[:space:]]*/./g'
Mem:..681632k.total,.44224k.used,.637408k.free,.2824k.buffers
其中Mem:后面有两个连续的.
作者:
blacknew
时间:
2010-07-07 10:50
回复
11#
好看的附件
这样试试:
top -n 1| col -b | grep ...
作者:
lkk2003rty
时间:
2010-07-07 10:50
top -b -n 1|grep "Mem:"|sed 's/[[:space:]][[:space:]]*/./g'
复制代码
作者:
好看的附件
时间:
2010-07-07 10:57
回复
12#
blacknew
不行呀,没有col命令。。。
作者:
blackold
时间:
2010-07-07 10:58
是控制字符。
你看到的是不真实的。
作者:
好看的附件
时间:
2010-07-07 10:59
回复
15#
blackold
那有办法过滤吗?因为机器上有好多命令都没有。
作者:
blacknew
时间:
2010-07-07 11:05
回复
16#
好看的附件
这样试试:
top -n 1 | awk '/Mem:/{printf "total:%d\tused:%d\n",$3,$5}'
作者:
好看的附件
时间:
2010-07-07 11:10
回复
17#
blacknew
恩,这样可以,万分感谢。看来得多学习了,感谢上面帮助的人
作者:
好看的附件
时间:
2010-07-07 11:19
回复
17#
blacknew
大哥,你真是太厉害了,我写了半天,你直接一句话就行了。。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2