我有一个目录heirarchy,其中包含包含(除其他外)IP地址的文本文件。我想构建一个列表,列出该目录和所有子目录中所有文件中引用的所有地址。
使用正则表达式可以相当容易地识别这些地址,但我不确定如何构造命令以便它将扫描所有文件。所以......
我如何使用grep
来构建这样的列表?
答案 0 :(得分:3)
只需递归使用grep:
grep -r 'yourRegularExpression' .
介意最后的点。它告诉grep从当前文件夹开始!
编辑:由于您只需要IP地址,因此可以使用-o参数,它只返回与正则表达式匹配的部分。所以有类似的东西:
grep -roE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' .
应该做的事情。 (-E参数是一个扩展的正则表达式,但我想你很熟悉)。
另一个编辑:正如ScottMcGready指出的那样,我假设您在文本文件中搜索的是IP地址而不是一些奇怪的格式。