【发布时间】:2016-10-14 14:52:41
【问题描述】:
我有一个文本文件中的电子邮件地址列表。我有一个具有字符类的模式,它指定电子邮件地址中允许使用哪些字符。 现在从该输入文件中,我只想搜索包含除允许字符之外的字符的电子邮件地址。 我正在尝试为此编写一个 gawk,但无法使其正常工作。 这是我正在尝试的傻瓜:
gawk -F "," ' $2!~/[[:alnum:]@\.]]/ { print "has invalid chars" }' emails.csv
我面临的问题是上面的 gawk 命令只匹配没有字母数字的记录,@ 和 . (点)在他们。但我正在寻找的是具有允许字符但同时具有不允许字符的记录。
例如,上面的命令会找到
"_-()&(()%"
因为上面只有不是正则表达式的字符,但不会找到
“abc-123@xyz,com”
。因为它还具有正则表达式模式中指定字符类中存在的字符。
【问题讨论】:
-
这个问题将受益于minimal reproducible example。