帮酷LOGO
0 0 评论


问题:

从给定的命令获得子字符串 df/dev/sdb1 | tail -n 1 :

/dev/sdb1 1952971772 1441131032 511840740 74%/media/kaiman/ShareData

我想从那个字符串中提取 195297177274%,以便在bash脚本中使用它。

我知道我可以使用一些cut命令或其他东西,但是如果尺寸发生变化它将不再起作用 。

我还想过使用 正规表达式 或什么东西,但是我希望有最推荐的方法。

提前致谢!


回答 1:
$ df/dev/sdb1 | awk '{ print $5 }' | tail -n 1

对于百分比和

$ df/dev/sdb1 | awk '{ print $2 }' | tail -n 1

尺寸。

没有tail :

 df/home | awk 'NR==2 { print $2 }'
 df/home | awk 'NR==2 { print $5 }'
  • awk '{ print $2 }'

得到第二列,其中多个分隔符计为1。 因此,对于您的系统,第2列始终与命令的第1部分相同。

  • NR 为你提供正在处理的记录总数或行号。

回答 2:

您只能选择第二列:

$ df/dev/sdb1 | tail -1 | awk '{print $2}' 
1952971772

$2 指示制表符分隔列的位置。 你可以使用 cut , 因为它只处理一次TAB这里有delimita列的多个标签 。





Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语