regex - 匹配数字的正则表达式

标签 regex linux unix sed awk

我有一个名为 phonenum.txt 的文件,其中包含已通过 procmail 配方从文件中过滤的电话号码列表:

60123456098,60135673434,60149023459,60123456334

根据此文件,需要满足两个条件才能获得输出。

  1. 输出必须用数字 60(它是国家代码,所以它是我可以在所有数字之间使用的唯一常量)和这些数字前面的“,”符号来区分。例如:60135673434..
  2. 如果数字 60 位于电话号码的中间怎么办?例如:60123456098 如何获得整数的输出?

无论如何,我可以通过在 awk 或 sed 中使用匹配正则表达式来获取电话号码吗?

最佳答案

awk -F, '{for(i=1;i<=NF;i++)if($i~/^60/){print "phone number is ",substr($i,3)}}' your_file

测试如下:

> cat temp
60123456098,60135673434,60149023459,60123456334,90123456789
> nawk -F, '{for(i=1;i<=NF;i++)if($i~/^60/){print "phone number is ",substr($i,3)}}' temp
phone number is  123456098
phone number is  135673434
phone number is  149023459
phone number is  123456334
>

关于regex - 匹配数字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14100341/

相关文章:

Javascript 使用正则表达式匹配以字符集中的特定字符开头并以相同字符结尾的字符串

linux - 我明白/dev/urandom 了吗?

linux - 日期更改时 Cron 的意外行为

perl - 为什么这些时间戳与 Perl Time::HiRes 不一致?

javascript - 正则表达式 - 无限错误是什么意思?

python - RegEx 忽略注释行。

python - 正则表达式不返回结果

c - getaddrinfo_a 线程安全吗?

MySQL从不同的Master复制不同的数据库

bash - 使用 Bash 在特定行之前插入多行文本