如何在 Linux 上查找包含特定文本的所有文件?
技术问答
407 人阅读
|
0 人回复
|
2023-09-11
|
我试图找到一种方法来扫描我整个 Linux 系统中包含特定文本字符串的所有文件。澄清一下,我正在文件中查找文本,而不是文件名中的文本。
4 `* m% y: \: Q9 E( o当我在寻找如何做到这一点时,我两次遇到了这个解决方案:! I0 E6 f6 _! C' T: M$ }9 a
find / -type f -exec grep -H 'text-to-find-here' {} \;
2 j/ E( r% j: z3 _ G, w" [, T' U1 @8 ?/ Z
但是,它不起作用。它似乎显示了系统中的每个文件。$ Y2 W+ A/ ^; B
这接近正确的方法吗?如果没有,我该怎么办?这种在文件中查找文本字符串的能力对于我正在做的一些编程项目非常有用。
6 @. J. }, V% T5 J) b" } 9 Z" X, p/ I' O! W
解决方案:' c3 y0 a2 c1 z
/ I& d, s. ?" O, A* {1 N0 E+ C! ?- M
' i5 C& ~2 L7 R- C( i
2 z! {0 F/ c2 H0 R, f \/ J. G7 g
您可以使用grep -ilR:
6 p { o; _, N' v+ W: f1 igrep -Ril "text-to-find-here" /# A* h7 {0 t: Z1 S& I$ p0 p
5 K9 u* |- T O" J! \i 代表忽略大小写(在您的情况下可选)。6 Y* X5 _: y0 L. b
R 代表递归。
O' R5 a0 g4 ^* kl 代表“显示文件名,而不是结果本身”。& ]/ p! O. t' }: W+ _* P
/ 代表从机器的根开始。
* C- ?8 I0 G2 } |
|
|
|
|
|