linux源码经过几十年的发展目前所具备的代码量已经非常大了,研究linux代码的人经常需要在linux源码里检索文件内容和相关资料,就需要用到“find”和“grep”命令,这里给大家介绍下关于Linux中利用grep命令如何检索文件内容的相关资料,并且给大家简单介绍了关于Linux grep和find的区别,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

  • 前言

Linux系统中搜索、查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索。下面来一起看看Linux利用grep命令检索文件内容的详细介绍。

  • 方法如下:

1、搜索某个文件里面是否包含字符串

命令格式:grep "被查找的字符串" filename1

例如:

grep "console_cmdline" kernel/printk/printk.c

2、在多个文件中检索某个字符串

命令格式:

  • grep "被查找的字符串t" filename1 filename2 filename3 ...

grep "console_cmdline" kernel/printk/braille.c kernel/printk/printk.c
  • grep "被查找的字符串" *.log

grep "console_cmdline" kernel/printk/*.c

3、显示所检索内容在文件中的行数,可以使用参数-n

命令格式: grep -n "被查找的字符串" *.log

grep "console_cmdline" kernel/printk/*.c -n

4、检索时需要忽略大小写问题,可以使用参数“-i”

命令格式: grep -i "被查找的字符串" *.log

grep "console_cmdline" kernel/printk/*.c -i

5、从文件内容查找不匹配指定字符串的行

命令格式:grep –v "被查找的字符串" 文件名

grep "console_cmdline" kernel/printk/*.c -v

6、搜索、查找匹配的行数:

命令格式:

  • grep –c "被查找的字符串" 文件名

grep "console_cmdline" kernel/printk/*.c -c
  • grep "被查找的字符串" 文件名 | wc -l

grep "console_cmdline" kernel/printk/*.c -c |wc  -l

7、递归搜索某个目录以及子目录下的所有文件

命令格式:grep –r "被查找的字符串" 文件目录

grep "console_cmdline" kernel/ -r

8、获取与整个搜索字符匹配的内容

命令格式:grep –w "被查找的字符串" 文件名

grep "console_cmdline" kernel/printk/printk.c -w

9、grep命令与find 命令的结合,实现联合检索

命令格式:find . -name '*.sql' -exec grep -i '被检索内容 ' {} \; -print

例如:

find -name '*.c' -exec grep 'console_cmdline' {} \; -print

10、Linux grep和find的区别

这是两个不同的命令,关于grep:

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

而linux下的find

功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。

语法:find 起始目录 寻找条件 操作 

说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。

所以简单点说说,grep是查找匹配条件的行,find是搜索匹配条件的文件

总结

不管是用grep命令还是find命令,只要能找到相应的文件和匹配内容,就是好命令。

更多推荐

Linux中利用grep命令如何检索文件内容详解