Как подсчитать количество вхождений строки, поиск по шаблону для конкретной строки

Вы знакомы с sar?

Вы можете попробовать sar -n ВСЕ , чтобы получить всю возможную сетевую статистику, или если вам нужна статистика rx и tx для каждого сетевого устройства, каждую секунду - попробуйте следующее:

 sar -n DEV 1

Для 5-секундной средней величины rx и tx для eth0 (например) сделайте:

sar -n DEV 1 5 | grep -i eth0 | tail -n1 | awk '{print $5, $6}'
1
05.03.2019, 01:53
1 ответ

Лично я бы сделал все это на Perl:

$ perl -00ne '/^(Student_\d+)/ && $count{$1}++; 
              /Name:\sA/ && $As++; 
              /Status:\s*Pass/ ? $pass++ : $fail++; 
             END{
                print "$_ : $count{$_}\n" for keys(%count); 
                print "Pass: $pass\nFail:$fail\n"; 
                print "Student names starting with A: $As\n"
            }' file 
Student_2 : 1
Student_1 : 1
Student_50 : 1
Pass: 2
Fail:2
Student names starting with A: 2

Если вы настаиваете на отдельных командах для каждой операции, вы можете использовать:

$ awk '/^Student_/{a[$0]++} END{for(s in a){print s,a[s]}}' file 
Student_1 1
Student_2 1
Student_50: 1
$ perl -ne '$pass++ if /:\s*Pass/; $fail++ if /:\s*Fail/;
     END{print "Pass: $pass\nFail: $fail\n"}' file 
Pass: 2
Fail: 2
$ echo "Student names starting with A: $(grep -c "^Name:\s*A" file )"
Student names starting with A: 2
2
27.01.2020, 23:36

Теги

Похожие вопросы