AWK与命令

我正在Linux中学习,我的上级给了我一个任务,我可以通过AWK命令在syslog中找到一个单词,其中显示了该单词的所有详细信息。我检查了google,但没有找到一个有用的命令。

gzdvd 回答:AWK与命令

您可以使用以下命令

dmesg | awk ' /pattern/ {print}'

awk '/pattern/ {print}' /var/log/syslog

一些例子。

$ awk '/kernel/ {print}' /var/log/syslog
Nov  5 10:36:01 HardwareTestPC kernel: [135368.195103] codelite-make[29069]: segfault at 0 ip 00007fd7360cca1b sp 00007ffcb98617e0 error 4 in libc-2.27.so[7fd735f99000+1e7000]
Nov  5 10:36:02 HardwareTestPC kernel: [135368.682625] codelite-make[29149]: segfault at 0 ip 00007fd7360cca1b sp 00007ffcb98611d0 error 4 in libc-2.27.so[7fd735f99000+1e7000]
Nov  5 10:40:01 HardwareTestPC kernel: [135608.437387] codelite-make[11438]: segfault at 0 ip 00007f5b9770fa1b sp 00007ffd774678b0 error 4 in libc-2.27.so[7f5b975dc000+1e7000]
Nov  5 10:40:02 HardwareTestPC kernel: [135608.695397] codelite-make[11474]: segfault at 0 ip 00007f5b9770fa1b sp 00007ffd774672a0 error 4 in libc-2.27.so[7f5b975dc000+1e7000]
Nov  5 10:47:59 HardwareTestPC kernel: [136086.395728] codelite-make[7425]: segfault at 0 ip 00007fb8bc720a1b sp 00007ffe65c356c0 error 4 in libc-2.27.so[7fb8bc5ed000+1e7000]
Nov  5 10:48:00 HardwareTestPC kernel: [136086.674097] codelite-make[7460]: segfault at 0 ip 00007fb8bc720a1b sp 00007ffe65c350b0 error 4 in libc-2.27.so[7fb8bc5ed000+1e7000]

您还可以指定要打印的字段。 awk命令使用空格作为分隔符将行拆分为字段(可通过$ 1到$ NF寻址)。

$ awk '/kernel/ {print $2,$3,$4}' /var/log/syslog
5 10:36:01 HardwareTestPC
5 10:36:02 HardwareTestPC
5 10:40:01 HardwareTestPC
5 10:40:02 HardwareTestPC
5 10:47:59 HardwareTestPC
5 10:48:00 HardwareTestPC
5 10:57:13 HardwareTestPC
5 10:59:46 HardwareTestPC
5 11:04:30 HardwareTestPC
5 11:04:30 HardwareTestPC
5 11:04:42 HardwareTestPC
5 11:04:42 HardwareTestPC

本文链接:https://www.f2er.com/3162066.html

大家都在问