web-dev-qa-db-ja.com

grepを使用して現在の行から前の行の数を引く方法は?

私はgrepを使用してmysqladminの出力を取得します

Sudo mysqladmin ext -i10 | grep 'buffer_pool_pages_flushed'

そして出力は次のように連続的です(10秒ごと)

| Innodb_buffer_pool_pages_flushed                             | 265708726                                        |
| Innodb_buffer_pool_pages_flushed                             | 265735665                                        |
| Innodb_buffer_pool_pages_flushed                             | 265751712                                        |
| Innodb_buffer_pool_pages_flushed                             | 265754576                                        |
| Innodb_buffer_pool_pages_flushed                             | 265774380                                        |

次のように、grepコマンドを調整して、2番目の列の連続する数値間の差異を出力するにはどうすればよいですか。

26939 (265735665-265708726)
16047 (265751712-265735665)
2864 (265754576-265751712)
19804 (265774380-265754576)
3
Googlebot

追加:

| awk '{if(NR>1){print $4-last,"("$4"-"last")"} last=$4}'

出力:

 26939(265735665-265708726)
 16047(265751712-265735665)
 2864(265754576-265751712)
 19804(265774380-265754576)
7
Cyrus
awk '/buffer_pool_pages_flushed/{curr=$(NF-1); print curr-prev; prev=curr}'
3
Ed Morton