Bash + Как сортировать журнал в соответствии с конкретным полемLinux

Ответить
Anonymous
 Bash + Как сортировать журнал в соответствии с конкретным полем

Сообщение Anonymous »

Цель состоит в том, чтобы извлечь числовую часть затрат: xxxms и сортировать все строки журнала
Пример log
/var/log/hadoop/hdfs/hadoop-hdfs-datanode-datanode01.star.com.log.7:2025-04-24 11:56:57,334 WARN datanode.DataNode (BlockReceiver.java:receivePacket(701)) - Slow BlockReceiver write data to disk cost:377ms (threshold=300ms), volume=/data/sdg/hadoop/hdfs/data
/var/log/hadoop/hdfs/hadoop-hdfs-datanode-datanode01.star.com.log.7:2025-04-24 11:56:57,334 WARN datanode.DataNode (BlockReceiver.java:receivePacket(701)) - Slow BlockReceiver write data to disk cost:507ms (threshold=300ms), volume=/data/sdg/hadoop/hdfs/data
/var/log/hadoop/hdfs/hadoop-hdfs-datanode-datanode01.star.com.log.7:2025-04-24 11:56:57,334 WARN datanode.DataNode (BlockReceiver.java:receivePacket(701)) - Slow BlockReceiver write data to disk cost:337ms (threshold=300ms), volume=/data/sdg/hadoop/hdfs/data
/var/log/hadoop/hdfs/hadoop-hdfs-datanode-datanode01.star.com.log.7:2025-04-24 11:56:57,334 WARN datanode.DataNode (BlockReceiver.java:receivePacket(701)) - Slow BlockReceiver write data to disk cost:407ms (threshold=300ms), volume=/data/sdg/hadoop/hdfs/data
< /code>
Пример ожидаемого вывода < /p>
/var/log/hadoop/hdfs/hadoop-hdfs-datanode-datanode01.star.com.log.7:2025-04-24 11:56:57,334 WARN datanode.DataNode (BlockReceiver.java:receivePacket(701)) - Slow BlockReceiver write data to disk cost:337ms (threshold=300ms), volume=/data/sdg/hadoop/hdfs/data
/var/log/hadoop/hdfs/hadoop-hdfs-datanode-datanode01.star.com.log.7:2025-04-24 11:56:57,334 WARN datanode.DataNode (BlockReceiver.java:receivePacket(701)) - Slow BlockReceiver write data to disk cost:377ms (threshold=300ms), volume=/data/sdg/hadoop/hdfs/data
/var/log/hadoop/hdfs/hadoop-hdfs-datanode-datanode01.star.com.log.7:2025-04-24 11:56:57,334 WARN datanode.DataNode (BlockReceiver.java:receivePacket(701)) - Slow BlockReceiver write data to disk cost:407ms (threshold=300ms), volume=/data/sdg/hadoop/hdfs/data
/var/log/hadoop/hdfs/hadoop-hdfs-datanode-datanode01.star.com.log.7:2025-04-24 11:56:57,334 WARN datanode.DataNode (BlockReceiver.java:receivePacket(701)) - Slow BlockReceiver write data to disk cost:507ms (threshold=300ms), volume=/data/sdg/hadoop/hdfs/data
< /code>
Мы пытались со следующими командами, но без успеха < /p>
grep 'cost:' log_file.txt | awk -F'cost:' '{print $0, $2}' | awk -F'ms' '{print $0, $1}' | sort -t' ' -k2,2nr
grep 'cost:' log_file.txt | awk -F'cost:' '{gsub("ms", "", $2); print $0, $2}' | sort -t' ' -k2,2nr
grep 'cost:' log_file.txt | awk -F'cost:' '{gsub("ms", "", $2); print $0, $2}' | sort -t' ' -k2,2nr | cut -d' ' -f1-


Подробнее здесь: https://stackoverflow.com/questions/795 ... ific-field
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»