使用“grep”命令查找包含电话号码的txt文件。
电话号码格式可以是:
"***-*******"
"**********"
"*** *******"
"***-***-****"
怎么写呢?
答案 0 :(得分:6)
数字为3位数(\ d {3}),空格或短划线[\ s-],3位数(\ d {3}),空格或短划线[\ s-],4位数(\ d {4 })。
grep '\d{3}[\s\-]{0,1}\d{3}[\s\-]{0,1}\d{4}' infile.txt
编辑 @Mark和Jed - 好建议 - 根据推荐进行更新
答案 1 :(得分:2)
$ cat file
test 1234567890 test
blah 123-4567890 junk junk 546-3345622 junk
blah blah 123 4575463 sdfsljads 123_456_4356 end
123--4567890
$ grep -Po '\d{3}[\s\-_]?\d{3}[\s\-_]?\d{4}' file
1234567890
123-4567890
546-3345622
123 4575463
123_456_4356
$ ruby -ne 'puts $_.scan(/\d{3}[\s\-_]?\d{3}[\s\-_]?\d{4}/)' file
1234567890
123-4567890
546-3345622
123 4575463
123_456_4356