linux日志怎么取,linux – 使用sed从日志中提取某些信息

我有这个日志,我想从中提取信息.我想用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 one-liners here(事实上,上面的grep例子来自这里链接的网页 – 除了我为每个人添加了FILE)

标签:linux,sed,text-processing

来源: https://codeday.me/bug/20190629/1326135.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值