zoukankan      html  css  js  c++  java
  • 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
    
    主要考察正则表达式的写法和awk的使用
    awk '$0 ~ /^[0-9]{3}-[0-9]{3}-[0-9]{4}$|^([0-9]{3}) [0-9]{3}-[0-9]{4}$/ {print $0}' file.txt

    遇到的问题:

      1、$0就表示整行记录,因此不用使用FS=“ ”,$1来操作

      2、awk的正则

        先看下一段代码

    awk '$0 ~ /^d{3}-d{3}-d{4}$|^(d{3}) d{3}-d{4}$/ {print $0}' file.txt

        运行会发现是错误的,因此推测d在awk是非法的

      3、正则表达式的分支(|)  

      4、^和$,如果不加会出错,比如下面的实例

        0(101) 001-1223

        0123-456-7891

        123-456-78910

        (001) 345-00001

  • 相关阅读:
    GROUP BY 和 ORDER BY一起使用
    MySQL中表的复制以及大型数据表的备份教程
    常用sql
    MySQL 数据类型(float)的注意事项
    MySQL VARCHAR字段最大长度到底是多少
    设计-Int(4)和Int(11)谁更美
    5.Flask-Migrate
    4.alembic数据迁移工具
    3.Flask-SQLAlchemy
    2.Flask jinjia2模板
  • 原文地址:https://www.cnblogs.com/qionghua520/p/4375674.html
Copyright © 2011-2022 走看看