OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

使用 grep 验证电话列表

在我们之前的示例中,我们查看了单个电话号码并检查它们的格式是否正确。 一个更现实的场景是检查数字列表,所以让我们列一个列表。 我们将通过对命令行背诵魔法咒语来做到这一点。 这会很神奇,因为我们还没有涵盖大部分涉及的命令,但不要担心。 我们将在以后的章节中到达那里。 这是咒语:



[我@linuxbox ~]$ 对于 {1..10} 中的 i; do echo "(${RANDOM:0:3}) ${RANDO M:0:3}-${RANDOM:0:4}" >> phonelist.txt; 完毕

[我@linuxbox ~]$ 对于 {1..10} 中的 i; do echo "(${RANDOM:0:3}) ${RANDO M:0:3}-${RANDOM:0:4}" >> phonelist.txt; 完毕


此命令将生成一个名为 电话列表.txt 包含十个电话号码。 每次重复该命令时,都会将另外十个数字添加到列表中。 我们也可以改变值 10 在命令的开头附近生成更多或更少的电话号码。 但是,如果我们检查文件的内容,就会发现有一个问题:



图片

[我@linuxbox ~]$ 猫电话列表.txt


(232)

298-2265

(624)

381-1078

(540)

126-1980

(874)

163-2885

(286)

254-2860

(292)

108-518

(129)

44-1379

(458)

273-1642

(686)

299-8268

(198)

307-2440


一些数字格式不正确,这对我们的目的来说是完美的,因为我们将使用

grep 来验证它们。

一种有用的验证方法是扫描文件中的无效数字并显示结果列表:



[我@linuxbox ~]$ grep -Ev '^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$'

电话列表.txt (292) 108-518

(129) 44-1379

[我@linuxbox ~]$

[我@linuxbox ~]$ grep -Ev '^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$'

电话列表.txt (292) 108-518

(129) 44-1379

[我@linuxbox ~]$


这里我们使用 -v 选项以生成反向匹配,以便我们仅输出列表中与指定表达式不匹配的行。 表达式本身在每一端都包含锚元字符,以确保数字两端都没有多余的字符。 与我们之前的电话号码示例不同,该表达式还要求括号出现在有效数字中。


OnWorks 的顶级操作系统云计算: