gpt4 book ai didi

regex - 使用 awk 提取所有电子邮件

转载 作者:行者123 更新时间:2023-12-01 21:28:22 35 4
gpt4 key购买 nike

我正在尝试使用 awk 提取该行的所有电子邮件。这是我尝试过的:

echo " test@test.com secondtest@test.com" | awk 'BEGIN{IGNORECASE = 1}{while(match($0,/[^\s@]+@[^\s@]+\.[a-z]{2,4}/, result) !=0 ) { printf "%s\\n",result[0]; $0 = sub(/[^\s@]+@[^\s@]+\.[a-z]{2,4}/,"", $0)}}'

但是不能正常工作。我期待以下输出:

test@test.com 
secondtest@test.com

最佳答案

在此处使用 OP 的正则表达式并尝试在此处修复 OP 的尝试。我们需要在代码中使用 [[:space:]] 代替 \s 也不需要在这里使用 sub 我们可以使用 for 循环一个一个地遍历所有字段并打印匹配的字段(通过使用使用正则表达式的 if 条件,只要条件满足且正则表达式匹配为 TRUE 则打印该字段,否则什么都不做) .使用 GNU awk 编写和测试。

echo " test@test.com secondtest@test.com" | 
awk '
{
for(i=1;i<=NF;i++){
if($i~/[^[:space:]]+@[^[:space:]]+\.[[:alpha:]]{2,4}/){ print $i }
}
}'

关于regex - 使用 awk 提取所有电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62758145/

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