我有一个名为 phonenum.txt 的文件,其中包含已通过 procmail 配方从文件中过滤的电话号码列表:
60123456098,60135673434,60149023459,60123456334
根据此文件,需要满足两个条件才能获得输出。
- 输出必须用数字 60(它是国家代码,所以它是我可以在所有数字之间使用的唯一常量)和这些数字前面的“,”符号来区分。例如:60135673434..
- 如果数字 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/