0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux grep命令详解

马哥Linux运维 来源:博客园天外归云 2024-12-25 09:39 次阅读

简介

Linux grep命令是一种非常常用的文本搜索工具,它可以在给定的文件中搜索匹配的字符串,并输出匹配的行。grep是全称“global search regular expression print”,可以识别正则表达式,并使用正则表达式进行搜索。

选项

以下是grep的所有选项:

grep [options] [pattern] [files]

-a, --text: 将二进制文件作为文本文件处理。

-c, --count: 显示匹配行数,而不是行本身。

-e pattern, --regexp=pattern: 查找指定的模式,支持多个模式。

-f file, --file=file: 从文件中读取模式,每个模式占一行。

-i, --ignore-case: 忽略大小写。

-l, --files-with-matches: 只打印文件名,而不是行本身。

-n, --line-number: 在每行的前面打印行号。

-r, --recursive: 遍历子目录中的文件。

-v, --invert-match: 输出不匹配的行。

-x, --line-regexp: 仅匹配整行。

-w, --word-regexp: 仅匹配整个单词。

pattern通常是一个正则表达式,用于匹配指定的文本模式。

files可以是若干个文件,也可以是目录。

以上是grep命令的所有选项,更多信息可以使用man grep在终端中查看。

常用grep选项举例

下面是常用的grep选项及其举例:

搜索指定字符串

可以使用grep搜索包含指定字符串的文件或文件夹,例如:

grep "hello" file.txt
grep "hello" folder/file.txt

搜索多个字符串

使用-E选项可以在同一行中搜索多个字符串。

grep -E "hello|world" file.txt

忽略大小写

使用-i选项可以忽略大小写的差异。

grep -i "hello" file.txt

输出行号

使用-n选项可以输出匹配字符串所在行的行号。

grep -n "hello" file.txt

反向搜索

使用-v选项可以输出不包含指定字符串的行。

grep -v "hello" file.txt

搜索某个范围内的行

使用 -A, -B, 或-C选项搜索特定范围内的行。

grep -A 2 "hello" file.txt  #输出包含“hello”的行以及后两行。
grep -B 2 "hello" file.txt  #输出包含“hello”的行以及前两行。
grep -C 2 "hello" file.txt  #输出包含“hello”的行以及前后两行。

搜索整个单词

使用-w选项可以搜索指定单词作为整个单词匹配。

grep -w "hello" file.txt

统计匹配次数

使用-c选项可以统计匹配字符串的个数。

grep -c "hello" file.txt

搜索指定文件类型

使用通配符可以搜索特定类型的文件或使用 --include选项来仅搜索指定文件类型。

grep "hello" *.txt
grep "hello" --include "*.txt" folder/

搜索子目录

使用-r或-R选项可以搜索子目录的文件。

grep -r "hello" folder/
grep -R "hello" folder/

不忽略二进制文件

使用-a选项可以强制grep搜索二进制文件。

grep -a "hello" binary_file.bin

搜索时忽略特定目录

使用 --exclude-dir选项来忽略特定目录的搜索。

grep -r "hello" folder/ --exclude-dir=log/

搜索特定行数

使用 -m 选项指定只搜索文件中的前几行。

grep -m 10 'hello' file.txt # 只搜索文件中的前10行

输出匹配字符串前后的内容

使用 -o 选项仅输出匹配字符串,而 -A 和 -B 选项可以输出字符串前后的内容。

grep -o 'hello' file.txt # 只输出匹配到的 'hello' 字符串,而不包含它前后的内容
grep -A 3 'hello' file.txt # 输出包含 'hello' 字符串的行以及后三行
grep -B 2 'hello' file.txt # 输出包含 'hello' 字符串的行以及前两行

显示不匹配行

使用 -L 选项输出不匹配指定字符串的行。

grep -L 'hello' file.txt # 输出不匹配 'hello' 字符串的行

显示匹配行前几行和后几行的内容

使用 -C 选项,可以同时输出匹配字符串前后几行的内容。

grep -C 2 'hello' file.txt # 输出包含 'hello' 字符串的行以及前后两行内容

搜索多个文件

可以一次性搜索多个文件。

grep 'hello' file1.txt file2.txt file3.txt # 搜索 file1.txt, file2.txt, file3.txt 文件中的 'hello' 字符串

搜索时忽略空白字符

使用 -w 选项,可以忽略匹配字符串前后的空格、制表符等空白字符。

grep -w 'hello' file.txt # 忽略匹配字符串前后的空格、制表符等空白字符

搜索时查看匹配字符串的上文或下文

使用 -B 和 -A 选项,可查看匹配字符串上下文的内容。

grep -B 2 'hello' file.txt # 输出包含 ‘hello’ 字符串的行以及匹配字符串前2行
grep -A 3 'hello' file.txt # 输出包含 ‘hello’ 字符串的行以及匹配字符串后3行

以上就是grep的所有功能举例。

链接:https://www.cnblogs.com/LanTianYou/p/17359397.html

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11302

    浏览量

    209413
  • 字符串
    +关注

    关注

    1

    文章

    579

    浏览量

    20511
  • 命令
    +关注

    关注

    5

    文章

    684

    浏览量

    22019
  • grep
    +关注

    关注

    0

    文章

    23

    浏览量

    4724

原文标题:常用grep选项举例

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linuxgrep命令的12个实际例子

    Linuxgrep命令的12个实际例子
    发表于 02-08 09:38 699次阅读

    Linuxgrep、sed和awk命令详解

    今天给大家聊一聊Linux中文本操作的`三剑客:awk、grep、sed`,因其功能强大、使用频繁,且是Linux下文本处理的得力利器,常被称之为`文本三剑客`。`grep`常用于查找
    发表于 04-26 17:20 3246次阅读
    <b class='flag-5'>Linux</b>中<b class='flag-5'>grep</b>、sed和awk<b class='flag-5'>命令</b><b class='flag-5'>详解</b>

    Linux命令grep

    Linux命令grep
    发表于 05-29 07:13

    linux grep命令详解

    工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。  Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是
    发表于 03-31 10:05

    Linux文件内容查询命令

    Linux文件内容查询命令 Linux文件内容查询命令  grep、fgrep和egrep命令
    发表于 01-18 12:45 846次阅读

    Linux关机命令详解

    Linux关机命令详解linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都 可以达到重启
    发表于 01-18 12:52 3631次阅读

    Linux系统命令及其使用详解 _120页

    电子发烧友网站提供《Linux系统命令及其使用详解 _120页.doc》资料免费下载
    发表于 04-18 13:23 3次下载

    Linux命令详解 [兼容模式]pdf免费下载

    linux命令详解pdf,希望对大家有帮助!
    发表于 12-15 15:54 10次下载

    Linux中用grep命令来搜索单词及统计匹配的行数

    代码代码如下:$ egrep -wi --color 'warning|error|critical' /var/log/messages输出示例:用 grep 命令统计匹配字符串的行数在 Linux
    发表于 04-02 14:46 639次阅读

    Linux在在文件中查找文本的Grep命令

    grep命令是(global regular expression print,全局正则表达式输出)的缩写,它是Linux中功能最强大且最常用的命令之一。
    的头像 发表于 06-21 12:06 3319次阅读

    linux的scp命令怎么用_linuxgrep命令用法

    linux中,scp命令用于Linux之间复制文件和目录,即在一台Linux服务器中将本地的文件上传到一台远端服务器,或将远端服务器的文件下载到本地。scp是
    发表于 09-04 15:36 4426次阅读
    <b class='flag-5'>linux</b>的scp<b class='flag-5'>命令</b>怎么用_<b class='flag-5'>linux</b>的<b class='flag-5'>grep</b><b class='flag-5'>命令</b>用法

    Linux系统中EXP命令详解质量汇总

    Linux系统中EXP命令详解质量汇总
    发表于 05-14 09:35 1次下载

    Linux虚拟机之tcpdump命令操作详解

    Linux虚拟机之tcpdump命令操作详解
    发表于 08-12 09:50 23次下载

    grep命令常用的选项详解

    说明:在Rocky8系统中,grep默认帮我们把匹配到的字符串标注了红色,这点还是挺贴心的。其实大家可以用which命令看一下grep,你会发现grep其实是
    的头像 发表于 11-30 11:43 4561次阅读

    如何使用grep命令

    grep命令的全称是全局正则表达式打印,它是Linux中功能最强大且最常用的命令之一。
    的头像 发表于 12-06 16:43 2112次阅读