大家早上好,想知道你是否可以帮助我解决以下问题: - 上周末我的一位同事向我展示了如何通过重新编写Bash脚本来大幅减少执行Bash脚本所需的时间蟒蛇.我对它跑得多快感到惊讶.我现在想用另一个脚本做同样的事情.
此其他脚本读取日志文件并使用AWK从日志中过滤某些字段并将其写入新文件.请参阅下面的脚本正在执行的正则表达式.我想在Python中重写这个正则表达式,因为我的脚本目前需要大约1个小时来执行大约100,000行的日志文件.我想尽可能减少这段时间.
cat logs/pdu_log_fe.log | awk -F\- '{print $1,$NF}' | awk -F\. '{print $1,$NF}' | awk '{print $1,$4,$5}' | sort | uniq | while read service command status; do echo "Service: $service, Command: $command, Status: $status, Occurrences: `grep $service logs/pdu_log_fe.log | grep $command | grep $status | wc -l | awk '{ print $1 }'`" >> logs/pdu_log_fe_clean.log; done
Run Code Online (Sandbox Code Playgroud)
这个AWK命令获得如下所示的行: -
2011-05-16 09:46:22,361 [Thread-4847133] PDU D <G_CC_SMS_SERVICE_51408_656.O_ CC_SMS_SERVICE_51408_656-ServerThread-VASPSessionThread-7ee35fb0-7e87-11e0-a2da-00238bce423b-TRX - 2011-05-16 09:46:22 - OUT - (submit_resp: (pdu: L: 53 ID: …Run Code Online (Sandbox Code Playgroud)