gpt4 book ai didi

linux - 使用 sed 从日志中提取某些信息

转载 作者:IT王子 更新时间:2023-10-29 01:27:05 25 4
gpt4 key购买 nike

我有这个日志,我想从中提取信息。我想使用 sed 来提取它。

Nov 12 19:56:52 libra kernel: [ 1353.27355] WarningIN=em0 OUT=eth0 MAC=c8:1b:3c:fd:5D:e9:90:a9:8F:43:83:E3:15:0e SRC=222.171.89.16 DST=49.137.111.136 LEN=222 TOS=0x8C PREC=0xbF TTL=107 ID=31469 PROTO=ICMP TYPE=35 CODE=8 ID=24917 SEQ=166

19:56:52 12 Nov;Warning;em0;eth0;222.171.89.16;49.137.111.136;ICMP;;

我对 sed 的理解有问题。如果有人可以在这里纠正我,那就太好了。我想先得到日期,所以我写了

$ sed 's/\([0-9][0-9]:[0-9][0-9]:[0-9][0-9]\).*/\1/' file.log

但我的输出是

Nov 12 19:56:52

我不明白为什么我不只是得到 19:56:52

最佳答案

使用这种模式:

sed -r 's/(^.*\s)([0-9][0-9][:][0-9][0-9]:[0-9][0-9])(.*$)/\2/'

举个例子:

echo "Nov 12 19:56:52 libra kernel" | sed -r 's/(^.*\s)([0-9][0-9][:][0-9][0-9]:[0-9][0-9])(.*$)/\2/'

=> 19:56:52

如果您只想使用 sed 打印所有文件内容,那么您可以使用:

sed r FILE

如果你想让 sed 像 grep 那样工作:

sed -n '/regexp/p' FILE          # method 1
sed '/regexp/!d' FILE # method 2

或者如果你想让它像 grep -v

sed -n '/regexp/!p' FILE         # method 1, corresponds to above
sed '/regexp/d' FILE # method 2, simpler syntax

您还可以找到一大堆 sed 单行代码 here (实际上,上面的 grep 示例取自此处链接的网页——除了我在每个示例中添加了 FILE)

关于linux - 使用 sed 从日志中提取某些信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17902186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com