我正在尝试从 syslog file(/var/log/messages) 获取 linux 中附加的 USB 信息。
为此,我阅读了日志文件并获取了信息。现在我要做的是读取 syslog 文件并尝试查找“找到新 USB 设备”的最后一次出现(新连接的 USB)。然后我试图阅读接下来的 16 行以获取 USB 信息(大小、序列号、制造商等)。
目前我正在使用以下语法:
grep -A 20 -e 'New USB device found' /var/log/messages | tail -n 16 > usb_detail
但是这种语法在一种情况下会失败。如果“New USB...”之后有 25 行,那么我会得到最后 16 行,然后我会跳过所需的实际信息。如果“New USB ...”之后只有 16 行,那么它会正常工作,我会得到所需的信息。
所以我想要的是在最后一次出现“找到新的 USB 设备”之后立即获得 16 行。不是“找到新 USB 设备”之后的最后 16 行。
如果我的问题不清楚,请告诉我。在此先感谢您的时间。