Ноутбук Dell перегревается и громко работает в режиме ожидания во время ожидания, и его невозможно вывести из спящего режима или возобновить работу (Pop! _ОС 21.04)

Перекрестный вопросhttps://stackoverflow.com/q/57377173/3220113был отложен. Я скопирую принятый ответ здесь, другой вопрос можно удалить.

Для одного файла:Сначала упростите обработку потока с помощью awk (все это можно сделать в awk, для немного лучшей производительности):

sed -nr 's/\|/,/g;s/(^R_MT,.*),S:([^ ]) *$/\1 \2/p' <(zcat abc.log.2019041607.gz)

Результат (после добавления дополнительных тестовых строк)

R_MT,D:1234,ID:413 1
R_MT,D:1234,ID:413 1
R_MT,D:1234,ID:413 1
R_MT,D:1234,ID:413 1
R_MT,D:1234,ID:413 1
R_MT,D:1234,ID:413 1
R_MT,D:1234,ID:413 1
R_MT,D:1234,ID:413 1
R_MT,D:1234,ID:413 1
R_MT,D:1234,ID:413 1
R_MT,D:1234,ID:413 0
R_MT,D:1234,ID:413 0
R_MT,D:1234,ID:413 0
R_MT,D:1234,ID:413 0
R_MT,D:1234,ID:413 0
R_MT,D:1234,ID:414 1
R_MT,D:1234,ID:414 1
R_MT,D:1235,ID:413 1
R_MT,D:1235,ID:413 1

А теперь посчитайте их в awk, используя массив a для имен полей.

sed -nr 's/\|/,/g;s/(^R_MT,.*),S:([^ ]) *$/\1 \2/p' <(zcat abc.log.2019041607.gz) |
   awk '{a[$1]; if ($2>0) notsub[$1]++; else submit[$1]++;}
        END {for (i in a) print i "," submit[i]+0 "," notsub[i]+0;}
       '

Для 5 файлов сначала определите, какие результаты вы хотите получить. В каждом файле отдельный выходной файл :использует цикл, подобный

while IFS= read -r filename; do
  ... <( zcat "${filename}")...
done < <(find datalogs -type f -name "abc*" -mmin -5)

Результаты из 5 файлов добавлены в одну сумму

... <( find datalogs -type f -name "abc*" -mmin -5 -exec zcat {} \;)...

0
15.09.2021, 12:23
0 ответов

Теги

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