如何查找包含特定字符串的文件?

为当前最终发行版之前的所有版本提供支持
回复
rhhsun
帖子: 63
注册时间: 2006-09-18 23:14
送出感谢: 0
接收感谢: 0

如何查找包含特定字符串的文件?

#1

帖子 rhhsun » 2006-10-06 17:25

我用 cat *.c | grep -n "Packets lost" 不能知道在哪个文件里面。
谢谢!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#2

帖子 eexpress » 2006-10-06 17:38

直接阿。
grep -n "xx" *.c
● 鸣学
rhhsun
帖子: 63
注册时间: 2006-09-18 23:14
送出感谢: 0
接收感谢: 0

#3

帖子 rhhsun » 2006-10-06 20:02

感谢 eexpress !

grep 的用法 (出自http://www.china-lg.com/index.php?play=reply&id=187
传统的 grep 程序, 在没有参数的情况下, 只输出符合 RE 字符串之句子. 常见参数如下:
-v: 逆反模示, 只输出"不含" RE 字符串之句子.
-r: 递归模式, 可同时处理所有层级子目录里的文件.
-q: 静默模式, 不输出任何结果(stderr 除外. 常用以获取 return value, 符合为 true, 否则为 false .)
-i: 忽略大小写.
-w: 整词比对, 类似 \<word\>; .
-n: 同时输出行号.
-c: 只输出符合比对的行数.
-l: 只输出符合比对的文件名称.
-o: 只输出符合 RE 的字符串. (gnu 新版独有, 不见得所有版本都支持.)
-E: 切换为 egrep .

* egrep:
为 grep 的扩充版本, 改良了许多传统 grep 不能或不便的操作. 比方说:
- grep 之下不支持 ? 与 + 这两种 modifier, 但 egrep 则可.
- grep 不支持 a|b 或 (abc|xyz) 这类"或一"比对, 但 egrep 则可.
- grep 在处理 {n,m} 时, 需用 \{ 与 \} 处理, 但 egrep 则不需.
诸如此类的... 我个人会建议能用 egrep 就不用 grep 啦... ^_^

* fgrep:
不作 RE 处理, 表达式仅作一般字符串处理, 所有 meta 均失去功能.
[/quote]
Charles.T
帖子: 88
注册时间: 2006-09-20 21:38
送出感谢: 0
接收感谢: 0
联系:

#4

帖子 Charles.T » 2006-10-06 20:44

也可通过sed进行过滤
回复

回到 “老旧版本支持”