帮酷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  |  如果智培  |  酷兔英语