Grep 在文件中查找电话号码

Grep 在文件中查找电话号码

我如何在/etc目录(但不是子目录)中查找包含标准美国长途电话号码的文件,使用 的模式编写1-###-###-####,其中每个文件#都替换为数字。收集目录中包含这种数字模式的每个文件的文件名/etc,并将它们放入 file 中~/etcphone.txt,每行一个文件名,使用绝对引用按字母顺序排序。

这就是我到目前为止所拥有的

egrep -l "1-[[:digit:]]{3}- " /etc/* 2>/dev/null 

答案1

$ egrep -l "\b1-[[:digit:]]{3}-[[:digit:]]{3}-[[:digit:]]{4}\b" \
    /etc/* 2>/dev/null | sort > ~/etcphone.txt

转义\b序列与字边界匹配。这将阻止 if 匹配诸如 之类的东西1231-123-123-1234

答案2

egrep -l "1(-[[:digit:]]{3}){3}[[:digit:]]" /etc/* 2>/dev/null

答案3

find /etc | xargs -I{} grep -l ‘1-[0-9]\{3\}-[0-9]\{3\}-[0-9]\{4\}’ {} | sort -nr > ~/etcphone.txt

答案4

cat filename.txt | grep '^[789][0-9]{9}'

此命令仅适用于以 7,8 或 9 开头的 10 位印度手机号码。

相关内容