【发布时间】:2020-08-29 01:18:29
【问题描述】:
以下是我写的,允许我只显示电话号码 在文件中。我也在下面发布了示例数据。
据我了解(从左到右阅读): 如果第一个字符是一个 Int,然后是一个以 [-,:] 开头的 int,然后是一个以 [-,:] 开头的 int,则使用由 "," 分隔的 awk 命令。显示第 3 列。
我使用“www.regexpal.com”来验证我的表达。我想了解更多,而不仅仅是答案,一个解释会很好。
GNU bash,版本 4.4.12(1)-release (x86_64-pc-linux-gnu)
awk -F "," '/^(\d)+([-,:*]\d+)+([-,:*]\d+)*$/ {print $3}' bashuser.csv
bashuser.csv
Jordon,New York,630-150,7234
Jaremy,New York,630-250-7768
Jordon,New York,630*150*7745
Jaremy,New York,630-150-7432
Jordon,New York,630-230,7790
Expected Output:
6301507234
6302507768
....
【问题讨论】:
-
\d是 PCRE,试试[0-9]+或[[:digit:]]+ -
int 或整数通常是原始数据类型。这意味着它们的大小是有限的。正则表达式的
\d指的是一个数字。这是 '0' 和 '9' 之间的值的字符 -
输第一个
^ -
感谢大家提供的信息。我添加了一个预期的输出来看看你将如何解决这个问题。