grep命令查找目录下文件内容,linux查找目录下的所有文件中是否含有某个字符串
grep命令查找目录下文件内容,linux查找目录下的所有文件中是否含有某个字符串详细介绍
本文目录一览: 如何在Linux下查找文件内容包含某个特定字符串的文件
概述使用grep可以查找包含指定字符串的文件
步骤详解格式:
grep “要查找的字符串” 文件名
例子:
grep "192.168.0.1" /etc
文件名可以使用基本正则表达式(BRE),例如, 查找test目录下的所有文件,是否包含www.dutycode.com字符串。
grep “www.dutycode.com” /root/zzh/test/*
小贴士:使用-n 参数,可以显示字符串在文件中的行数
拓展内容关于grep的命令的使用:
几个常用的查询指令:
1、查找时不区分字符串的大小写
grep -i “查找的字符串” 文件名
2、查找时使用正则表达式,匹配符合的字符串
grep -e “正则表达式” 文件名
3、查找不匹配指定字符串的行:
grep -v “被查找的字符串” 文件名
4、查找时显示被查找字符串所在的行数
grep -n “查找的字符串” 文件名
linux下按文件名和文件内容查找文件
在当前目录下,查找所有内容包含‘abc'的文件
find . -type f | xargs grep -l 'abc'
或
find . -type f -exec grep -l 'abc' {} \;
扩展资料:linux查找文件命令find
根据部分文件名查找方法:
这个方法和在WINDOWS中查找已知的文件名方法是一样的。不过在Linux中根据部分文件名查找文件的方法要比在WINDOWS中的同类查找方法要强大得多。
例如我们知道某个文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现的,输入:
find /etc -name '*srm*'
这个命令表明了Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,比如 absrmyz, tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件是由srm 这3个字母打头的,那么我们还可以省略最前面的星号,命令如下:
find/etc -name 'srm*'
这是只有像srmyz 这样的文件才被查找出来,象absrmyz或者 absrm这样的文件都不符合要求,不被显示,这样查找文件的效率和可靠性就大大增强了。
linux grep查找文件内容
Linux查找文件内容的常用命令方法。
1、从文件内容查找匹配指定字符串的行:
$ grep "被查找的字符串" 文件名
例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件
grep "thermcontact" */*.in
2、从文件内容查找与正则表达式匹配的行:
$ grep –e “正则表达式” 文件名
3、查找时不区分大小写:
$ grep –i "被查找的字符串" 文件名
4、查找匹配的行数:
$ grep -c "被查找的字符串" 文件名
5、从文件内容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名
6、从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行
find / -type f -name "*.log" | xargs grep "ERROR"
例子:从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”thermcontact”的行
find . -name "*.in" | xargs grep "thermcontact"
linux查找目录下的所有文件中是否含有某个字符串
用grep遍历目标目录下的所有文件
比如:你的字符是 “some_code” ,文件夹名字是 YOUR_DIR
grep -R "some_code" YOUR_DIR
如果你不需要显示内容,只需要含有某个字符的文件:
grep -lR "some_code" YOUR_DIR
附录:
grep -R 和 -l 参数
-R, -r, --recursive
递归地读每一目录下的所有文件。这样做和 -d recurse 选项等价。
-l, --files-with-matches
禁止通常的输出;作为替代,打印出每个在通常情况下会产生输出的输入文件的名字。对每个文件的扫描在遇到第一个匹配的时候就会停止。
ps:
如果目录下有二进制文件,也可能匹配到。
在当前目录下所有文件查找含有main字符串的文件:
grep -r . -e main
解释:
-r recursive,
-e pattern.
grep -rn "要查找的字符串" *
-r 是递归查找
-n 是显示行号
* : 表示当前目录所有文件,也可以是某个文件名。
grep命令的常用格式为:grep [选项] ”模式“ [文件]。
模式部分:
1、直接输入要匹配的字符串,这个可以用fgrep(fast grep)代替来提高查找速度,比如我要匹配一下hello.c文件中printf的个数:fgrep -c "printf" hello.c。
2、使用基本正则表达式。
扩展资料:
查找字符串的第二种方法:
find .|xargs grep “要查找的字符串”
find . -exec grep “要查找的字符串” {} \;
find / -name "要查找的字符串"
find / -name "要查找的字符串"
Linux中使用grep命令搜索文件名及文件内容的方法
从文件中搜索并显示文件名
当你从不止一个的文件中搜索时,默认它将显示文件名:
代码如下:
grep
word
文件名
grep
root
/etc/*
示例输出:
代码如下:
/etc/bash.bashrc:
See
man
sudo_root
for
details.
/etc/crontab:17
*
*
*
*
root
cd
/
run-parts
--report
/etc/cron.hourly
/etc/crontab:25
6
*
*
*
root
test
-x
/usr/sbin/anacron
||
(
cd
/
run-parts
--report
/etc/cron.daily
)
/etc/crontab:47
6
*
*
7
root
test
-x
/usr/sbin/anacron
||
(
cd
/
run-parts
--report
/etc/cron.weekly
)
/etc/group:root:x:0:
grep:
/etc/gshadow:
Permission
denied
/etc/logrotate.conf:
create
0664
root
utmp
/etc/logrotate.conf:
create
0660
root
utmp
每行开始的第一个部分是文件名(如:/etc/crontab、/etc/group)。使用
-l
选项可以只显示文件名:
代码如下:
grep
-l
string
filename
grep
-l
root
/etc/*
示例输出:
代码如下:
/etc/aliases
/etc/arpwatch.conf
grep:
/etc/at.deny:
Permission
denied
/etc/bash.bashrc
/etc/bash_completion
/etc/ca-certificates.conf
/etc/crontab
/etc/group
你也可以逆转输出;使用
-L
选项来输出那些不匹配的文件的文件名:
代码如下:
grep
-L
word
filename
grep
-L
root
/etc/*
示例输出:
代码如下:
/etc/apm
/etc/apparmor
/etc/apparmor.d
/etc/apport
/etc/apt
/etc/avahi
/etc/bash_completion.d
/etc/bindresvport.blacklist
/etc/blkid.conf
/etc/bluetooth
/etc/bogofilter.cf
/etc/bonobo-activation
/etc/brlapi.key
根据文件内容查找文件
输入以下命令:
代码如下:
grep
'string'
*.txt
grep
'main('
*.c
grep
'#include'
*.c
grep
'getChar*'
*.c
grep
-i
'ultra'
*.conf
grep
-iR
'ultra'
*.conf
其中
-i
:
忽略模式(匹配字符串
valid、
VALID、
ValID
)和输入文件(匹配
file.c
FILE.c
FILE.C)的大小写。
-R
:
递归读取每个目录下的所有文件。
高亮匹配到的模式
在搜索大量文件的时候你可以轻松地高亮模式:
代码如下:
$
grep
--color=auto
-iR
'getChar();'
*.c
为查找到的模式显示文件名和行号
你也许需要显示文件名和行号:
代码如下:
$
grep
--color=auto
-iRnH
'getChar();'
*.c
其中,
-n
:
在输出的每行前面添加以
1
开始的行号。
-H
:
为每个匹配打印文件名。要搜索多个文件时这是默认选项。(LCTT
译注:-h
选项强制隐藏文件名;另外
-l
和
-L
选项用于仅显示匹配/不匹配的文件名,而
-H
和
-h用于控制在显示匹配行前显示/不显示文件名,注意区分。)
代码如下:
$grep
--color=auto
-nH
'DIR'
*
输出样例:
你也可以使用
find
命令:
代码如下:
$
find
.
-name
*.c
-print
|
xargs
grep
main(
Linux下find命令和grep命令查找文件
在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。 两个命令是有区的。 (1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。
一.find命令
基本格式:find path expression
1.按照文件名查找
(1)find / -name httpd.conf 在根目录下查找文件httpd.conf,表示在整个硬盘查找
(2)find /etc -name httpd.conf 在/etc目录下文件httpd.conf
(3)find /etc -name ' srm ' 使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
(4)find . -name 'srm*' 表示当前目录下查找文件名开头是字符串‘srm’的文件
linux查找目录下的所有文件中是否含有某个字符串
DiskOnChip:裸片+glue logic,glue logic=硬件ECC产生器+用于静态的nand 芯片控制的寄存器+直接访问一小片地址窗口,那块地址中包含了引导代码的stub桩,其可以从nand flash中拷贝真正的引导代码。
Nand flash的操作,和其他一些常见的设备,如硬盘等,不同,其有自己特殊的方式。
其特殊就在于:
Nand flash的最小单位是页page,而不是其他很多设备所说的位bit。
写入数据之前必须先进行擦除erase操作
写的时候,最小单位是页page,对也进行写操作,也称作“页编程”,page programming
擦除的最小单位是块block
由于物理特性,容易出错,所以无论是读还是写,都要采取检测和校验,即EDC。
nand flash出厂时候,就有一定坏的块block,成为换块,并且做了一定标记。
nand flash中有个额外的空间,叫做spare area/oob!
grep -nr "xxxx" ./
注:xxxx就是你要找的字符串
linux系统自带的grep命令是一个强大的搜索工具,可以从各文件中查询匹配的字符信息。
查找目录下的所有文件中是否含有某个字符串,命令如下:
grep "string" ./*“string"为待查找串 , ./* 表示当前目录下所有文件
grep常用用法:
# grep [-acinv] [--color=auto] '搜寻字符串' filename选项与参数:-a :将 binary 文件以 text 文件的方式搜寻数据-c :计算找到 '搜寻字符串' 的次数-i :忽略大小写的不同,所以大小写视为相同-n :顺便输出行号-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!--color=auto :可以将找到的关键词部分加上颜色的显示!
直接利用grep可以在当前目录及其所有子目录中查找文件吗
find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。若跟据文件的内容进行查找,需使用grep命令。 说明: 1、find命令的一般形式为find [PATH] [option] [action] find命令部分选项说明:...
grep -R 'test' *
如何在Linux系统查找某文件夹中含有关键字的文件
用grep命令,一般用法:
grep 一些选项 "匹配的字符串" 文件名/目录名比如你这个问题,可以执行
grep -r "abc" dir/-r
是递归地在目录中查找
如果,目录下文件特别多,或者文件特别大,可能会使查找过程特别慢,所以可能先筛选文件再进行查找。