Awk
awk 還是 grep?- 列印關鍵字和以下列
我做了一些基準測試,輸出是一個包含多個結果的單個文件,格式如下
[blaaa] 1st run T/V N NB P Q Time ========================== 2 3 4 1 2 1.02 [blaaaa...] 2nd run T/V N NB P Q Time ========================== 4 42 4 1 2 1.22
我只想獲得我所做的不同執行的執行時間。那麼是否可以grep“時間”並列印下一列但一列?甚至只列印出來
1.02 1.22
對於我上面的例子?我寧願只列印沒有 blaa 部分的三個結果列:D
假設
Time
總是在第六個欄位:$ awk '$6 == "Time" {t = NR} t && NR == t+2 {print $6}' file 1.02 1.22
或者,您可以使用
getline
兩次 - quick’n’dirty:awk '$6 == "Time" {getline; getline; print $6}' file
(“臟”,因為它不檢查
getline
返回值)。
$ grep -o 'Time\|[0-9\.]\+$' file Time 1.02 Time 1.22 $ grep -o '[0-9\.]\+$' file 1.02 1.22 $ grep -A2 ^T/V file T/V N NB P Q Time ========================== 2 3 4 1 2 1.02 -- T/V N NB P Q Time ========================== 4 42 4 1 2 1.22
結果
--
在最後一個 grep 中用 grep 分隔,可以使用以下命令刪除:$ grep -A2 ^T/V file | grep -v '^--'
並
====
刪除了這些行:$ grep -A2 ^T/V file | grep -v '^--\|=\+'