gpt4 book ai didi

regex - sed 命令 : regex in bash to exclude certain strings

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:19:14 26 4
gpt4 key购买 nike

我想排除剪辑和日期中的所有内容,但选择所有其他数据。

数据:

02.04.2001 ERROR (User1) Server can't start
01.02.2005 ERROR (User2) Server can't start
07.08.2006 ERROR (User1) Problem with Login
12.05.2009 ERROR (User2) Problem with Login

期望的输出:

ERROR  Server can't start
ERROR Server can't start
ERROR Problem with Login
ERROR Problem with Login

我试过像这样 sed -n "s/^.*ERROR/ERROR/p" 来排除开头的日期。这奏效了。

我不知道如何排除“(用户)”字符串。

最佳答案

尝试:

$ sed -n "s/[^)]*ERROR ([^)]*)/ERROR/p" file
ERROR Server can't start
ERROR Server can't start
ERROR Problem with Login
ERROR Problem with Login

我们添加了捕获用户字符串的正则表达式 ([^)]*)

为了防止字符串 ERROR 在行中出现多次,我们将 ERROR 之前的正则表达式从 .* 更改为[^)]*。这可以防止正则表达式与 (User1) 字符串之后可能出现的任何 ERROR 字符串匹配。

请注意,前导 ^ 是不必要的。 Sed 的正则表达式匹配最左边最长的匹配项。这意味着 .*ERROR 将始终从行首开始匹配。

关于regex - sed 命令 : regex in bash to exclude certain strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46068836/

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