grep을 사용하여 현재 행에서 이전 행의 숫자를 빼는 방법은 무엇입니까?

grep을 사용하여 현재 행에서 이전 행의 숫자를 빼는 방법은 무엇입니까?

mysqladmin나는 grep을 사용하여 다음과 같은 출력을 얻습니다.

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두 번째 열의 연속 숫자 간의 차이를 출력하도록 명령을 조정하려면 어떻게 해야 합니까 ?

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

답변1

추가의:

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

산출:

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

답변2

awk '/buffer_pool_pages_flushed/{curr=$(NF-1); print curr-prev; prev=curr}'

관련 정보