Unix查询---查找数字

时间:2014-02-27 09:05:33

标签: unix

在Linux / Unix系统上,您有一个充满文件的目录。您想要识别其中包含电话号码的文件,您可以在其中假设电话号码类似于xxx-xxx-xxxx。您可以使用哪些标准的Unix工具来解决您的问题?

我可以使用egrep '[0-9]+-[0-9]+-[0-9]+' *

有什么方法可以使用find命令来解决这个或任何其他命令来解决这个问题?

3 个答案:

答案 0 :(得分:0)

ls | egrep '[0-9]{3}-[0-9]{3}-[0-9]{4}'出了什么问题?除非您需要一些复杂的后期处理,否则您不需要find来搜索平面目录。

如果要检查文件内容,请使用egrep '[0-9]{3}-[0-9]{3}-[0-9]{4}' *

答案 1 :(得分:0)

ls -1 | perl -lne 'print if(/^[\d]{3}-\d{3}-\d{4}$/)'

下面测试:

> touch 903-745-39913
> touch 903-745-3991
> ls -1 | perl -lne 'print if(/^[\d]{3}-\d{3}-\d{4}$/)'
903-745-3991
>

您的问题不太清楚。如果您的意思是文件中存在电话号码。 然后,

ls| xargs perl -lne 'print if(/\b[\d]{3}-\d{3}-\d{4}\b/)'  

将服务于目的。

答案 2 :(得分:0)

使用Sed

sed -n '/^[0-9]\{3\}-[0-9]\{3\}-[0-9]\{4\}/p' phonelist.txt