linux查找目录下的所有文件中是否含有某个字符串

如题所述

1、可以使用grep命令来查找当前目录下所有文件中包含的某个特定字符。

2、示例:查找当前目录下所有带有set的文件 。 

说明:

-r 是递归查找

-n 是显示行号

* : 表示当前目录所有文件,也可以是某个文件名

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-30

查找目录下的所有文件中是否含有某个字符串使用:find .|xargs grep -ri "IBM"。正则表达式一般用来描述文本模式的特殊用法,由普通字符以及特殊字符组成。

在linux下查找某目录下所有文件包含某字符串的命令: 

1、从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名 。

2、从文件内容查找与正则表达式匹配的行: $ grep –e “正则表达式” 文件名 。

3、查找时不区分大小写: $ grep –i "被查找的字符串" 文件名 。

4、查找匹配的行数: $ grep -c "被查找的字符串" 文件名 。

5、从文件内容查找不匹配指定字符串的行: $ grep –v "被查找的字符串" 文件名 。

6、从根目录开始查找所有扩展名为.txt的文本文件,并找出包含"phpzixue.cn"的行 
find . -type f -name "*.txt" | xargs grep "phpzixue.cn"表示当前目录 -type 表示类型 f 表示普通文件 xargs 表示递归查找子目录 目标字符可带**等符号 可不带引号。

本回答被网友采纳
第2个回答  2016-04-01
grep "要查找的字符串" /目录/*.*
方法有很多。这是其中一种。
使用命令 man grep可查看帮助文档。

NAME
grep, egrep, fgrep - print lines matching a pattern

SYNOPSIS
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

DESCRIPTION
grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus (-)
is given as file name) for lines containing a match to the given PATTERN. By default, grep prints the matching
lines.

In addition, two variant programs egrep and fgrep are available. egrep is the same as grep -E. fgrep is the
same as grep -F. Direct invocation as either egrep or fgrep is deprecated, but is provided to allow historical
applications that rely on them to run unmodified.
OPTIONS
Generic Program Information
--help Print a usage message briefly summarizing these command-line options and the bug-reporting address, then
exit.

-V, --version
Print the version number of grep to the standard output stream. This version number should be included
in all bug reports (see below).

Matcher Selection
-E, --extended-regexp
Interpret PATTERN as an extended regular expression (ERE, see below). (-E is specified by POSIX.)

-F, --fixed-strings, --fixed-regexp
Interpret PATTERN as a list of fixed strings, separated by newlines, any of which is to be matched. (-F
is specified by POSIX, --fixed-regexp is an obsoleted alias, please do not use it in new scripts.)

-G, --basic-regexp
Interpret PATTERN as a basic regular expression (BRE, see below). This is the default.

-P, --perl-regexp
Interpret PATTERN as a Perl regular expression. This is highly experimental and grep -P may warn of
unimplemented features.

Matching Control
-e PATTERN, --regexp=PATTERN
Use PATTERN as the pattern. This can be used to specify multiple search patterns, or to protect a
pattern beginning with a hyphen (-). (-e is specified by POSIX.)

-f FILE, --file=FILE
Obtain patterns from FILE, one per line. The empty file contains zero patterns, and therefore matches
nothing. (-f is specified by POSIX.)

-i, --ignore-case
Ignore case distinctions in both the PATTERN and the input files. (-i is specified by POSIX.)

-v, --invert-match
Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX.)

-w, --word-regexp
Select only those lines containing matches that form whole words. The test is that the matching
substring must either be at the beginning of the line, or preceded by a non-word constituent character.
Similarly, it must be either at the end of the line or followed by a non-word constituent character.
Word-constituent characters are letters, digits, and the underscore.

-x, --line-regexp
Select only those matches that exactly match the whole line. (-x is specified by POSIX.)

-y Obsolete synonym for -i.

General Output Control
-c, --count
Suppress normal output; instead print a count of matching lines for each input file. With the -v,
--invert-match option (see below), count non-matching lines. (-c is specified by POSIX.)

--color[=WHEN], --colour[=WHEN]
Surround the matched (non-empty) strings, matching lines, context lines, file names, line numbers, byte
offsets, and separators (for fields and groups of context lines) with escape sequences to display them
in color on the terminal. The colors are defined by the environment variable GREP_COLORS. The
deprecated environment variable GREP_COLOR is still supported, but its setting does not have priority.
WHEN is never, always, or auto.

-L, --files-without-match
Suppress normal output; instead print the name of each input file from which no output would normally
have been printed. The scanning will stop on the first match.

-l, --files-with-matches
Suppress normal output; instead print the name of each input file from which output would normally have
been printed. The scanning will stop on the first match. (-l is specified by POSIX.)
第3个回答  推荐于2017-12-15
grep -rnl '要搜索的字符串' *
*表示当前目录的所有文件和子文件夹,可以替换为某个文件夹名或者指定的文件名
-r 表示递归查找
-n 表示不显示匹配所在的行号
-l 表示只输出文件名本回答被提问者采纳
第4个回答  2016-03-20
简单来说如果是你查找某目录下的文件名就使用find ,如果是查找某文件内容,可以使用grep .两个命令都有具体的用法,自行百度《linux 就该这么学》第二章 里有详细的解释和示例。

linux查找目录下的所有文件中是否含有某个字符串
-nogroup 查找无有效所属组的文件,即该文件所属的组在\/etc\/groups中不存在 -newer file1 !file2查找更改时间比文件file1新但比文件file2旧的文件 -depth 先查找指定目录有无匹配文件,若无则再在子目录中查找 -type 查找某一类型的文件,如 b :块设备文件 d:目录 e:字符设备文件 p;管道文件 l:符号链接文...

linux查找目录下的所有文件中是否含有某个字符串
1、可以使用grep命令来查找当前目录下所有文件中包含的某个特定字符。2、示例:查找当前目录下所有带有set的文件 。说明:-r 是递归查找 -n 是显示行号 : 表示当前目录所有文件,也可以是某个文件名

linux查找目录下的所有文件中是否含有某个字符串
-ok 和 -exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。options有如下几种:-name :按照文件名查找文件 -perm :按照文件权限来查找文件 -user :按照文件属主来查找文件 -group :按照文件所属的组来查找...

linux查找目录下的所有文件中是否含有某个字符串
: 表示当前目录所有文件,也可以是某个文件名。grep命令的常用格式为:grep [选项] ”模式“ [文件]。模式部分:1、直接输入要匹配的字符串,这个可以用fgrep(fast grep)代替来提高查找速度,比如我要匹配一下hello.c文件中printf的个数:fgrep -c "printf" hello.c。2、使用基本正则表达...

如何在Linux下查找文件内容包含某个特定字符串的文件
文件名可以使用基本正则表达式(BRE),例如, 查找test目录下的所有文件,是否包含www.dutycode.com字符串。grep “www.dutycode.com” \/root\/zzh\/test\/ 小贴士:使用-n 参数,可以显示字符串在文件中的行数 拓展内容关于grep的命令的使用:几个常用的查询指令:1、查找时不区分字符串的大小写 grep...

linux查找目录下的所有文件中是否含有某个字符串
find \/XXX\/XXX -type f | xargs grep "XXXX" 结果形式 全路径文件名:字符串 find \/XXX\/XXX -type f -exec grep "XXX" {} \\; 结果形式 包含字符串的文件内容

linux查找目录下的所有文件中是否含有某个字符串
那么如何在linux下寻找包含某段文字的文件呢?强大的find命令可以帮你完成不可能的任务。比如我只记得我的程序里包含唯一的字符串“111cn.net”,于是:查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri “111cn.net”查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 f...

linux查找目录下的所有文件中是否含有某个字符串
假设字符串为"test",则查找当前目录下所有文件中是否含有该字符串的命令为:find .\/ -name "*.*" | xargs grep "test"

linux查找目录下的所有文件中是否含有某个字符串
查找目录下的所有文件中是否含有某个字符串,命令如下:grep "string" .\/*“string"为待查找串 , .\/* 表示当前目录下所有文件 grep常用用法:grep [-acinv] [--color=auto] '搜寻字符串' filename选项与参数:-a :将 binary 文件以 text 文件的方式搜寻数据-c :计算找到 '搜寻字符串'...

linux查找目录下的所有文件中是否含有某个字符串
查找目录下的所有文件中是否含有某个字符串 IBM是示例字串 find .|xargs grep -ri "IBM"查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l

相似回答