получить все последующие строки после 10 совпадения bash

Автор zCirill, 26 июня 2016, 21:47:15

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

zCirill

Добрый день.

Подскажите плз как получить последние строки после 10 совпадения?

Есть вот такой файл, нужно получить все строки после 10 совпадения с "Actual DISK WRITE"

Пока придумал как первые две взять

grep -A2 "Actual DISK WRITE" /tmp/lolol | tail -n2
но блин, если будет больше строк.


Открыть содержимое (спойлер)


cat /tmp/lolol
Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  PID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
Total DISK READ :       0.00 B/s | Total DISK WRITE :     105.59 K/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:     187.71 K/s
  202 be/3 root          0.00 B     68.00 K  0.00 %  1.04 % [jbd2/sda1-8]
1350 be/4 postgres      0.00 B     36.00 K  0.00 %  0.33 % postgres: checkpointer process
6543 be/4 root          0.00 B      4.00 K  0.00 %  0.00 % python /usr/sbin/iotop -Poabq -n 10
Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  202 be/3 root          0.00 B     68.00 K  0.00 %  0.53 % [jbd2/sda1-8]
1350 be/4 postgres      0.00 B     36.00 K  0.00 %  0.17 % postgres: checkpointer process
6543 be/4 root          0.00 B      4.00 K  0.00 %  0.00 % python /usr/sbin/iotop -Poabq -n 10
Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  202 be/3 root          0.00 B     68.00 K  0.00 %  0.36 % [jbd2/sda1-8]
1350 be/4 postgres      0.00 B     36.00 K  0.00 %  0.11 % postgres: checkpointer process
6543 be/4 root          0.00 B      4.00 K  0.00 %  0.00 % python /usr/sbin/iotop -Poabq -n 10
Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:      15.67 K/s
  202 be/3 root          0.00 B     68.00 K  0.00 %  0.27 % [jbd2/sda1-8]
1350 be/4 postgres      0.00 B     36.00 K  0.00 %  0.08 % postgres: checkpointer process
6543 be/4 root          0.00 B      4.00 K  0.00 %  0.00 % python /usr/sbin/iotop -Poabq -n 10
Total DISK READ :       0.00 B/s | Total DISK WRITE :      11.50 K/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       7.67 K/s
  202 be/3 root          0.00 B     68.00 K  0.00 %  0.21 % [jbd2/sda1-8]
1350 be/4 postgres      0.00 B     36.00 K  0.00 %  0.07 % postgres: checkpointer process
1286 be/4 mongodb       0.00 B      8.00 K  0.00 %  0.00 % mongod --config /etc/mongod.conf
  573 be/4 syslog        0.00 B      4.00 K  0.00 %  0.00 % rsyslogd
6543 be/4 root          0.00 B      4.00 K  0.00 %  0.00 % python /usr/sbin/iotop -Poabq -n 10
Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  202 be/3 root          0.00 B     68.00 K  0.00 %  0.18 % [jbd2/sda1-8]
1350 be/4 postgres      0.00 B     36.00 K  0.00 %  0.06 % postgres: checkpointer process
1286 be/4 mongodb       0.00 B      8.00 K  0.00 %  0.00 % mongod --config /etc/mongod.conf
  573 be/4 syslog        0.00 B      4.00 K  0.00 %  0.00 % rsyslogd
6543 be/4 root          0.00 B      4.00 K  0.00 %  0.00 % python /usr/sbin/iotop -Poabq -n 10
Total DISK READ :       0.00 B/s | Total DISK WRITE :      50.58 K/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:     101.16 K/s
  202 be/3 root          0.00 B    120.00 K  0.00 %  0.20 % [jbd2/sda1-8]
1350 be/4 postgres      0.00 B     36.00 K  0.00 %  0.05 % postgres: checkpointer process
6543 be/4 root          0.00 B      4.00 K  0.00 %  0.02 % python /usr/sbin/iotop -Poabq -n 10
1286 be/4 mongodb       0.00 B      8.00 K  0.00 %  0.00 % mongod --config /etc/mongod.conf
  573 be/4 syslog        0.00 B      4.00 K  0.00 %  0.00 % rsyslogd
Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  202 be/3 root          0.00 B    120.00 K  0.00 %  0.17 % [jbd2/sda1-8]
1350 be/4 postgres      0.00 B     36.00 K  0.00 %  0.04 % postgres: checkpointer process
6543 be/4 root          0.00 B      4.00 K  0.00 %  0.02 % python /usr/sbin/iotop -Poabq -n 10
1286 be/4 mongodb       0.00 B      8.00 K  0.00 %  0.00 % mongod --config /etc/mongod.conf
  573 be/4 syslog        0.00 B      4.00 K  0.00 %  0.00 % rsyslogd
Total DISK READ :       0.00 B/s | Total DISK WRITE :      11.71 K/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:      11.71 K/s
  202 be/3 root          0.00 B    120.00 K  0.00 %  0.15 % [jbd2/sda1-8]
1350 be/4 postgres      0.00 B     36.00 K  0.00 %  0.04 % postgres: checkpointer process
6543 be/4 root          0.00 B      4.00 K  0.00 %  0.01 % python /usr/sbin/iotop -Poabq -n 10
1050 be/4 elastics      0.00 B     12.00 K  0.00 %  0.00 % java -Xms512m -Xmx512m -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Delasticsearch -Des.pidfile=/var/run/elasticsearch/elasticsearch.pid -Des.path.home=/usr/share/elasticsearch -cp :/usr/share/elasticsearch/lib/elasticsearch-1.7.2.jar:/usr/share/elasticsearch/lib/*:/usr/share/elasticsearch/lib/sigar/* -Des.default.config=/etc/elasticsearch/elasticsearch.yml -Des.default.path.home=/usr/share/elasticsearch -Des.default.path.logs=/var/log/elasticsearch -Des.default.path.data=/var/lib/elasticsearch -Des.default.path.work=/tmp/elasticsearch -Des.default.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
1286 be/4 mongodb       0.00 B      8.00 K  0.00 %  0.00 % mongod --config /etc/mongod.conf
  573 be/4 syslog        0.00 B      4.00 K  0.00 %  0.00 % rsyslogd

[свернуть]

endru

#1
grep -n "Actual DISK WRITE" /tmp/lolol | tail -n 1 | awk -F':' '{ print $1}' покажет номер строки последнего совпадения.
cat /tmp/lolol | wc -l - выведет количество строк в файле.
находим разницу между двумя числами и подсовываем tail. profit?

если нужно именно 10 совпадение, то смотри в строну этой конструкции:
command | head -10 | tail -1

удачи