如何从命令输出中删除space / TAB

时间:2014-10-01 20:36:53

标签: linux bash awk

请就以下理解问题提出建议???

我在我的linux机器上输入:(为了通过top命令获得总内存)

top -n1 | grep Mem: 
Mem:   2075024k total,  2059064k used,    15960k free,   249212k buffers

所以现在我想得到第二个字段中存在的总内存,所以我这样做:

  #  top -n1 | grep Mem: | awk '{print $2}'

但没有任何结果!!! - :(

但如果我这样做:(第三个字段),那么尽管第二个字段中存在该值,我仍然得到总值吗?

 # top -n1 | grep Mem: | awk '{print $3}'
 2075024k

我想用任何方式使用正常命令:(awk'{print $ 2}')

    top -n1 | grep Mem: | awk '{print $2}'

请建议需要添加到“普通”命令以获得第二个值 - 2075024k - 这里有什么问题????

 # top -n1 | grep Mem: | od -c
  0000000   M   e   m   :     033   (   B 033   [   m 033   [   3   9   ;
  0000020   4   9   m 033   (   B 033   [   m           2   0   7   5   0
  0000040   2   4   k     033   (   B 033   [   m 033   [   3   9   ;   4
  0000060   9   m   t   o   t   a   l   , 033   (   B 033   [   m 033   [
  0000100   3   9   ;   4   9   m 033   (   B 033   [   m           2   0
  0000120   5   8   6   5   6   k     033   (   B 033   [   m 033   [   3
  0000140   9   ;   4   9   m   u   s   e   d   , 033   (   B 033   [   m
  0000160 033   [   3   9   ;   4   9   m 033   (   B 033   [   m        
  0000200           1   6   3   6   8   k     033   (   B 033   [   m 033
  0000220   [   3   9   ;   4   9   m   f   r   e   e   , 033   (   B 033
  0000240   [   m 033   [   3   9   ;   4   9   m 033   (   B 033   [   m
  0000260               2   5   0   5   0   0   k     033   (   B 033   [
  0000300   m 033   [   3   9   ;   4   9   m   b   u   f   f   e   r   s
  0000320 033   (   B 033   [   m 033   [   3   9   ;   4   9   m 033   [
  0000340   K  \n
  0000342

1 个答案:

答案 0 :(得分:0)

awk '/^MemTotal:/ {print $2}' /proc/meminfo

输出(例如),单位:kB:

3095532

或者:

grep -oP "^MemTotal: *\K[^ ]+" /proc/meminfo

输出(例如),单位:kB:

3095532