Shell练习 验证号码

Posted qingyezhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell练习 验证号码相关的知识,希望对你有一定的参考价值。

原文:
https://leetcode.com/problems/valid-phone-numbers/
Given a text file file.txt that contains list of phone numbers (one per line), write a one liner bash script to print all valid phone numbers.

You may assume that a valid phone number must appear in one of the following two formats: (xxx) xxx-xxxx or xxx-xxx-xxxx. (x means a digit)

You may also assume each line in the text file must not contain leading or trailing white spaces.

For example, assume that file.txt has the following content:

987-123-4567
123 456 7890
(123) 456-7890
Your script should output the following valid phone numbers:
987-123-4567
(123) 456-7890
简单点说,就是只要符合那两种的都是合格的号码,输出来就可以。

 

答案

cat file.txt |grep -E "(^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$)|(^([0-9]{3}-){2}[0-9]{4}$)"

这其中使用了grep -E命令,其表示命令中使用正则。

正则有^(表示开头)和$(表示结尾),[0-9]表示从0开始到9之间的数包括0和9,{n}表示匹配n次。

其中\(\)表示小括号转义。

以上是关于Shell练习 验证号码的主要内容,如果未能解决你的问题,请参考以下文章

ruby 练习:阶级战,验证信用卡号码如果信用卡号码我们应该能够验证它是否有效基于

firebase 的短信代码不匹配

shell练习-sort排序详解

正则表达式练习

正则匹配学习练习

正则表达式练习