我有一个包含许多错误行的日志文件,例如:

Failed to add [email protected] to database


我可以通过一个grep调用过滤这些行:

grep -E 'Failed to add (.*) to database'


这可以正常工作,但是我真正想做的是让grep(或我将输出传递到的另一个Unix命令)仅输出匹配行的电子邮件地址部分。

这可能吗?

最佳答案

您可以使用sed:

grep -E 'Failed to add (.*) to database'| sed 's/'Failed to add \(.*\) to database'/\1'

关于unix - 您可以使用正则表达式对文件进行grep操作,而仅输出行的匹配部分吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/974757/

10-16 19:14