给定一个包含电话号码列表(每行一个)的文本文件file.txt,编写一个线性衬里脚本来打印所有有效的电话号码。
>假定有效的电话号码必须以以下两种格式之一出现:(xxx)xxx-xxxx或xxx-xxx-xxxx。 (x表示一个数字)
>还可以假定文本文件中的每一行都不得包含前导或尾随空格
假设file.txt具有以下内容:
987-123-4567
123 456 7890
(123) 456-7890
您的脚本应输出以下有效电话号码:
987-123-4567
(123) 456-7890
# 1.0 Read from the file file.txt and output all valid phone numbers to stdout.
cat file.txt | grep -P "^(\d{3}-|\(\d{3}\) )\d{3}-\d{4}$"
# 2.0 Read from the file file.txt and output all valid phone numbers to stdout.
grep -P '^(\d{3}-|\(\d{3}\) )\d{3}-\d{4}$' file.txt
没学过bash,强行解释一波:
cat file.txt:一次性读取文件
|: 上一条命令的输出,作为下一条命令参数
grep:在一个或多个文件中搜索字符串模板,命令格式:grep [option] pattern file