我想使用 bash 命令执行以下任务:
查找/etc
包含字符串“10.17.1”或“130.236.189”的所有文件,并将文件名输出到另一个文件。
我正在尝试使用 来做到这一点egrep
。
答案1
你可以使用
sudo egrep -rl '(10\.17\.1|130\.236\.189)' /etc > newfile
笔记
- 您需要
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
。