linux查找内容命令

linux查找内容命令,第1张

find,用于在文件树中查找文件并作相应的处理

-name:按照文件名查找文件

-perm:按照文件权限查找文件

-user:按照文件属主来查找文件

-size:按照指定的文件大小查找文件【+n:大于,-n:小于,n:等于】

-group:按照文件所属的组来查找文件

-mtime<-n><+n>:按照文件更改时间来查找文件,-n表示n天之内,+n表示n天以前

-newer file1 file2:查找更改时间在file1和file2之间的文件

例如:

find -mtime -2:查找48小时修改过的文件

find -name ".log":查找当前目录以".log"结尾的文件

find /opt/soft/test -perm 777:查找指定目录下权限为777的文件

find -type f -name "*.log":查找当前目录下以".log"结尾的普通文件

find -type d | sort:查找当前所有目标目录并排序

find /home/wansw -size +20M:查找大于20M的文件

locate指令,可以快速定位文件路径,利用事先建立的系统中的所有文件名称和路径的locate数据库,无需遍历整个文件系统,查询速度较快,为了保证查询准确性,需要定期更新。《Linux就该这么学》

updatedb:第一次运行前,创建locate数据库

grep,用于过滤/搜索指定字符串。可以使用正则表达式,能配合多种命令使用。

用法:grep 【选项】 查找内容 源文件

-A:显示符合的行及之后的内容

-B:显示符合的行及之前的内容

-C:显示符合的行及前后的内容

-c:计算符合的行数目

-n:显示匹配行和行号

-i:忽略大小写

规则表达式

:'grep'表示匹配所有以grep开头的行

'表示匹配所有以grep结尾的行

.:'gr.p'表示匹配'gr'后面接任意字符然后是'p'

:'grep'表示匹配一个或多个空格后紧跟grep的行

[]:[Gg]rep表示匹配Grep与grep

[]:[A-FH-Z]rep表示匹配不以A-F、H-Z开头并紧跟rep的行

例如(grep命令大多数时候多要和别的命令一起使用才有意义):

ps -ef | grep -c SVN:查找指定的进程的个数

cat test.txt | grep -f test2.txt:从text2.txt中读取关键字后在test.txt中搜索

cat test.txt | grep nf text2.txt:从text2.txt中读取关键字后在text.txt中搜索并显示行号

grep 'linux' text.txt test2.txt:从多个文件中搜索关键字'linux'

cat test.txt | grep -E 'ed|at':显示包含ed或at的行

进行Linux系统维护的时候,想要在文本中快速搜索到你需要的东西,grep命令是非常不错的选择,它主要用于查找文件里符合条件的字符串,从而节省时间、提高工作效率。那么Linux系统中grep命令如何使用?我们一起来看看详细的内容介绍。

Linux grep命令用于查找文件里符合条件的字符串。

grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为-,则grep指令会从标准输入设备读取数据。

语法

grep

[-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

参数

-a或--text:不要忽略二进制的数据。

-A<显示行数>或--after-context=<显示行数>:除了显示符合范本样式的那一列之外,并显示该行之后的内容。

-b或--byte-offset:在显示符合样式的那一行之前,标示出该行第一个字符的编号。

-B<显示行数>或--before-context=<显示行数>:除了显示符合样式的那一行之外,并显示该行之前的内容。

-c或--count:计算符合样式的列数。

-C<显示行数>或--context=<显示行数>或-<显示行数>:除了显示符合样式的那一行之外,并显示该行之前后的内容。

-d<动作>或--directories=<动作>:当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。

-e<范本样式>或--regexp=<范本样式>:指定字符串做为查找文件内容的样式。

-E或--extended-regexp:将样式为延伸的正则表达式来使用。

-f<规则文件>或--file=<规则文件>:指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。

-F或--fixed-regexp:将样式视为固定字符串的列表。

-G或--basic-regexp:将样式视为普通的表示法来使用。

-h或--no-filename:在显示符合样式的那一行之前,不标示该行所属的文件名称。

-H或--with-filename:在显示符合样式的那一行之前,表示该行所属的文件名称。

………………

参数较多,就不为大家一一讲解了!

Grep 是一个强大的 UNIX 命令,可让您在文件内容中搜索各种参数。当您进行故障排除或调试时,它特别有用。

grep 命令有大量的选项和用例。您可能永远不需要或使用所有这些。但是,您最终会在大多数情况下使用少数几个 grep 命令。

本文列出了最常见的 grep 命令和快速示例:

命令示例:

描述 :不区分大小写的搜索

命令示例:

描述 :匹配后显示 n 行

命令示例:

描述 :在匹配前显示 n 行

命令示例:

描述 :在匹配前后显示 n 行

命令示例:

描述 :显示不匹配的行

命令示例:

描述 :计算匹配行数

命令示例:

描述 :仅显示文件名

命令示例:

描述 :匹配确切的单词

命令示例:

描述 :匹配正则表达式模式

命令示例:

描述 :搜索二进制文件

命令示例:

描述 :递归搜索目录

您可能已经知道要在文件中搜索特定文本或模式,您必须像这样使用 grep:

让我们看看 grep 命令的几个常见用例。

默认情况下,使用 grep 进行的搜索区分大小写,-i您可以使用以下选项忽略大小写匹配:

这样,grep 将返回与 和 匹配的Holmes行holmes。

默认情况下,您只会看到匹配的行,但是,当您对某些问题进行故障排除时,在匹配行之前和/或之后查看几行会有所帮助。

您可以使用-A来显示匹配行之后的行。

下面的命令将显示匹配的行以及匹配后的 5 行。

同样,您可以使用该-B选项在匹配行之前显示行。

下面的命令将在匹配行之前显示 5 行以及匹配行。

我最喜欢的是该选项-C,因为它显示了匹配行之前和之后的行。

下面的命令将显示匹配行之前的 5 行、匹配行和 matchine 行之后的 5 行。

您可以使用 grep 显示与给定模式不匹配的所有行。此“反转匹配”与以下-v选项一起使用:

您可以组合-i和-v选项。

-c您可以使用选项获取与模式匹配的行数,而不是显示匹配的行。这是小写的c。

您可以结合-cand-v选项来获取与给定模式不匹配的行数。您当然可以使用不区分大小写的选项-i。

要显示匹配行的行号,您可以使用该-n选项。

您可以对反向搜索执行相同的 *** 作。

您可以提供多个文件供 grep 搜索。

这可能有效,但更实际的示例是搜索特定类型的文件。例如,如果您只想在 shell 脚本中查找字符串(以 .sh 结尾的文件),您可以使用:

您可以使用 grep option执行递归搜索-r。它将在当前目录及其子目录中的所有文件中搜索给定的模式。

默认情况下,grep 显示匹配的行。如果您对多个文件运行了搜索,并且只想查看哪些文件包含该字符串,则可以使用该-l选项。

假设您想查看哪些 Markdown 文件包含“手册”一词,您可以使用:

默认情况下,grep 将显示包含给定字符串的所有行。你可能并不总是想要那个。如果您正在搜索单词“done”,它还会显示包含“doner”或“abandoned”字样的行。

要使 grep 仅搜索完整的单词,您可以使用以下选项-w:

这样,如果您搜索单词“done”,它只会显示包含“done”的行,而不是“doner”或“abandoned”。

您可以使用正则表达式模式为您的搜索提供超级动力。有一个允许使用正则表达式模式的专用选项-e和-E一个允许使用扩展正则表达式模式的选项。

您可以在同一个 grep 搜索中搜索多个模式。如果要查看包含一种模式或另一种模式的行,可以使用 OR 运算符|。

您可以将多个模式与 OR 运算符一起使用。

AND 运算符没有特定选项。为此,您可以多次使用 grep 和管道重定向。

Grep 默认忽略二进制文件。-a您可以使用该选项使其在二进制文件中搜索,就好像它是文本文件一样。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8595739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存