sed只留下第一个字母

时间:2018-07-31 11:55:19

标签: regex sed

在这种情况下,我要删除Windows事件日志中的大多数日志行。

我在EventCode = 4624上进行了测试-成功登录

02/01/2018 09:56:03 AM
LogName=Security
SourceName=Microsoft Windows security auditing.
EventCode=4624
EventType=0
Type=Information
ComputerName=COMPUTER1
TaskCategory=Logon
OpCode=Info
RecordNumber=1072237543
Keywords=Audit Success ...

我尝试如下使用sed:

sed "s/(?!Type\=\w+).+//g"

但是我只有一个字母“ T”,如下所示:

T

我做错了什么?

预期输出:

Type=Information

1 个答案:

答案 0 :(得分:2)

您可以使用

sed -E "/^Type=[[:alnum:]_]+$/!d"

它将删除所有不匹配的行

  • ^-行首
  • Type=-文字字符串
  • [[:alnum:]_]+-1个或更多字母数字字符或_个字符
  • $-行尾。

请参见online demo