我想使用 bash 命令执行以下任务:
找到/etc其中包含字符串“10.17.1”或“130.236.189”的所有文件,并将文件名输出到另一个文件。
我正在尝试使用egrep.
你可以用
sudo egrep -rl '(10\.17\.1|130\.236\.189)' /etc > newfile
Run Code Online (Sandbox Code Playgroud)
sudo在此处查看一些文件。-l 只打印文件名,不打印匹配的行-r递归搜索。如果您只想检查顶级文件,请删除\.匹配文字.;不转义,.匹配任何字符。a|b匹配a或b。在这个例子中括号是多余的,因为正则表达式中没有其他内容。'foo|bar'匹配foo或bar一样好'(foo|bar)'。但我将它们包括在内,因为我认为这是一个很好的做法:括号定义开始/停止交替的区域,例如'foo bar|baz'匹配foo bar或baz,而'foo (bar|baz)'匹配foo bar或foo baz。