use*_*205 31 command-line grep
我有一个这种类型的文本文件,我会查找任何包含该字符串的行Validating Classification,然后唯一地获取报告的错误。我不知道可能的错误类型。
输入文件:
201600415 10:40 Error Validating Classification: error1
201600415 10:41 Error Validating Classification: error1
201600415 10:42 Error Validating Classification: error2
201600415 10:43 Error Validating Classification: error3
201600415 10:44 Error Validating Classification: error3
Run Code Online (Sandbox Code Playgroud)
输出文件
201600415 10:40 Error Validating Classification: error1
201600415 10:42 Error Validating Classification: error2
201600415 10:43 Error Validating Classification: error3
Run Code Online (Sandbox Code Playgroud)
我可以使用 grep、管道和其他命令来实现吗?
小智 62
您将需要丢弃时间戳,但 'grep' 和 'sort --unique' 可以一起为您完成。
grep --only-matching 'Validating Classification.*' | sort --unique
Run Code Online (Sandbox Code Playgroud)
所以grep -o只会显示与您的正则表达式匹配的行的部分(这就是为什么您需要在“验证分类”匹配之后.*包含所有内容)。然后,一旦您有了错误列表,就可以使用来获取唯一的错误列表。sort -u