2014-02-15 76 views
1

問題是顯示出現了多少個NMI。如果我檢查「貓/ proc /中斷」它說Linux:使用cut命令刪除某些字符之前和之後的所有內容

NMI:   0   0 Non-maskable interrupts 

現在我需要一個返回只有2 0的班輪。我已經完成:

grep -P 'NMI' /proc/interrupts | cut -d ':' -f2 

在開始時刪除「NMI:」,但不知道如何在同一行中完成所有其他操作。

乾杯

+0

你想在文件中計算NMI嗎? – MLSC

回答

4

可以使用awk例如:

$ awk '/^NMI/ {print $2, $3}' /proc/interrupts 
0 0 

如果你還是想用cut,那麼你首先有tr擠壓空間:

$ grep "^NMI:" /proc/interrupts | tr -s ' ' | cut -d' ' -f2,3 
0 0 
+0

爲第二個,應該是:'grep -P'NMI'/ proc/interrupts | tr -s''|削減-d''-f2,3' – BMW

+0

是的,真正的觀點。只需要-P不需要。更新,謝謝! – fedorqui

+0

您可以使用'cut -w'來拆分任意數量的空格(連續空格和製表符作爲單個字段分隔符計數) – Carpetsmoker

1

隨着

echo $(grep -oP 'NMI:\s+\K\d+\s+\d+' /proc/interrupts) 
+0

使用echo有什麼意義? – BMW

+3

@寶:我利用_shell word splitting_來避免顯示不需要的空格 –

1

對於這一點,我選擇的武器是awk,因爲它的設計採用了這種處理記:

awk '/^NMI/{ 
    for(i=1; i<=NF; ++i) 
     if($i~/^[[:digit:]]+$/) 
      printf("%10d ", $i); 
    print "" 
}' /proc/interrupts 

這應該對任何數字(虛擬)CPU的工作,在事件的CPU數量增加。例如,我的/ proc/interrupts文件有4個數字字段。

相關問題