在Linux / Unix系统上,您有一个充满文件的目录。您想要识别其中包含电话号码的文件,您可以在其中假设电话号码类似于xxx-xxx-xxxx。您可以使用哪些标准的Unix工具来解决您的问题?
我可以使用egrep '[0-9]+-[0-9]+-[0-9]+' *
有什么方法可以使用find命令来解决这个或任何其他命令来解决这个问题?
答案 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