You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用单行命令匹配邮箱并输出小写邮箱+ +对应整行内容

单行命令实现邮箱提取小写并拼接原行

Perl 方案(修正你提供的代码问题)

你原来的Perl正则存在语法错误,比如字符组里错误使用了{0-9}(正确写法是0-9)、顶级域名长度限定位置错误,替换部分的\1也无对应捕获组。修正后的命令如下:

perl -ne 'if (/([A-Za-z0-9._+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,9})/) { print lc($1), "\t", $_ }'

关键说明:

  • -ne参数:逐行读取输入,不自动输出内容,方便自定义输出逻辑
  • 正则捕获组():精准匹配邮箱格式,把匹配到的邮箱存入变量$1
  • lc($1):将捕获到的邮箱字符串转为全小写
  • 最后输出小写邮箱 + 制表符 + 原行完整内容

Awk 方案

如果偏好Awk,也可以用以下命令实现:

awk 'match($0, /[A-Za-z0-9._+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,9}/, m) { print tolower(m[0]) "\t" $0 }'

关键说明:

  • match()函数:匹配行中的邮箱字符串,结果存入数组m,m[0]为匹配到的完整邮箱
  • tolower(m[0]):将邮箱转为全小写
  • 输出格式与Perl方案一致

测试示例

输入:

info1 info2 emaiL@Domain.com 09-03-2023

输出:

email@domain.com	info1 info2 emaiL@Domain.com 09-03-2023

内容的提问来源于stack exchange,提问作者Random Guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 18:32:21