我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux中怎么使用grep

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux中怎么使用grep

本文小编为大家详细介绍“Linux中怎么使用grep”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux中怎么使用grep”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Grep全称Global Regular Expression Print,表示全局正则表达式 是一个强大的文本搜索工具,采用正则匹配,与sed、awk并称Linux三剑客。

Linux中怎么使用grep

1、命令格式 grep [options] files

2、主要参数 -c: 只输出匹配行的数目 -i: 不区分大小写 -n:显示匹配航以及行号 -l:查询多文件的时候只输出包含匹配字符的文件名 -v:反向匹配,即显示不匹配的行 -h: 查询的时候不适用文件名 -s:不显示错误信息

3、部分正则表达式 \     反义字符:如””””表示匹配”” ^$ 开始和结束 [] 单个字符,[A] [ – ] 匹配一个范围,[0-9a-zA-Z]匹配所有数字和字母

  • 前面的字符出现0次或者多次

  • 前面的字符出现了一次或者多次 . 任意字符

4、经典场景

除非要精确区分大小写,否则请加上-i来忽略大小写

(1)结合find命令和管道 你的一个音乐文件夹里有多种格式的文件,而你只想找到艺术家jay的mp3文件,并且不含有任何的混合音轨

 [root@localhost ~]#find . -name ".mp3" | grep -i jay | grep -vi "remix"

分析: 1)使用find -name 来列出所有mp3文件,重定向给grep

  1. 使用grep -i 来查找包含jay的行 3)使用grep -vi 来查找不包含remix的行

(2)-A -B -C 很多时候,我们并关心匹配行而是关心匹配行的上下文。这时候-A -B -C就有用了 -A n 后n行,A记忆为(After) -B n 前n行,B记忆为(Before) -C n 前n行,后n行,C记忆为(Center) 举例

 [root@localhost ~]# ifconfig | grep -A 2 "Link encap" eth0      Link encap:Ethernet  HWaddr 00:0C:29:F3:38:15             inet addr:192.168.91.129  Bcast:192.168.91.255  Mask:255.255.255.0           inet6 addr: fe80::20c:29ff:fef3:3815/64 Scope:Link -- lo        Link encap:Local Loopback             inet addr:127.0.0.1  Mask:255.0.0.0           inet6 addr: ::1/128 Scope:Host   [root@localhost ~]#  ifconfig | grep -C 2 "lo"           Interrupt:67 Base address:0x2024   lo        Link encap:Local Loopback             inet addr:127.0.0.1  Mask:255.0.0.0           inet6 addr: ::1/128 Scope:Host

(3) 用-c来统计数目 你手头有一个很大的文件,这个文件包含网址,比如www.baidu.com tieba.baidu.com等等。你想要知道有多少个隶属于百度的网址

 [root@localhost ~]# grep -c "*baidu.com*" filename 例子 [root@localhost ~]# cat file.txt wtmp begins Mon Feb 24 14:26:08 2014 192.168.0.1 162.12.0.123 "123" 123""123 njuhwc@163.com njuhwc@gmil.com 123 www.baidu.com tieba.baidu.com www.google.com www.baidu.com/search/index [root@localhost ~]# grep -cn ".*baidu.com.*" file.txt 3

(4) -r 递归查找子目录 查找当前目录极其子目录下面包含匹配字符的文件 查找子目录,匹配后输出行号,这里的点表示当前目录

 [root@localhost ~]# grep -nr HELLO_HWC_CSND_BLOG* .

例子:

 [root@localhost ~]# grep -nr baidu . ./file.txt:8:www.baidu.com ./file.txt:9:tieba.baidu.com ./file.txt:11:www.baidu.com/search/index ./test/test.txt:1:http://www.baidu.com

查找子目录,匹配后只输出文件名

 [root@localhost ~]# grep -lr HELLO_HWC_CSND_BLOG* .

例子:

 [root@localhost ~]# grep -lr baidu . ./file.txt ./test/test.txt

(5)–line-buffered 打开buffering 模式 你有一个文件是动态的,它不断地添加信息到文件的尾部,而你想要输出包含某些信息的行。即持续的grep一个动态的流

 [root@localhost ~]#tail -f file | grep --line-buffered your_pattern

(6)结合ps查找进程

 [root@localhost ~]# ps aux | grep init root         1  0.0  0.1   2072   632 ?        Ss   22:52   0:01 init [5]                             root      4210  0.0  0.1   6508   620 ?        Ss   23:01   0:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "/usr/bin/dbus-launch --exit-with-session /etc/X11/xinit/Xclients" root      4233  0.0  0.0   2780   504 ?        S    23:01   0:00 /usr/bin/dbus-launch --exit-with-session /etc/X11/xinit/Xclients root      4956  0.0  0.1   3920   680 pts/1    R+   23:27   0:00 grep init

这里我们看到了grep init我们执行的命令也被列出来了 如果不想要这一行,我们可以这么改命令

 [root@localhost ~]# ps aux | grep [i]nit root         1  0.0  0.1   2072   632 ?        Ss   22:52   0:01 init [5]                             root      4210  0.0  0.1   6508   620 ?        Ss   23:01   0:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "/usr/bin/dbus-launch --exit-with-session /etc/X11/xinit/Xclients" root      4233  0.0  0.0   2780   504 ?        S    23:01   0:00 /usr/bin/dbus-launch --exit-with-session /etc/X11/xinit/Xclients

(7)查找不包含某一个目录

 [root@localhost ~]#grep -R --exclude-dir=node_modules 'some pattern' /path/to/search

例子

 [root@localhost ~]# ls anaconda-ks.cfg  Desktop  file.txt  find.result  install.log  install.log.syslog  test [root@localhost ~]# grep -r baidu . ./file.txt:www.baidu.com ./file.txt:tieba.baidu.com ./file.txt:www.baidu.com/search/index ./test/test.txt:http://www.baidu.com

这时候如果我们不想包含test目录

 [root@localhost ~]# grep -R --exclude-dir=text "baidu" . ./file.txt:www.baidu.com ./file.txt:tieba.baidu.com ./file.txt:www.baidu.com/search/index

如果报错

 grep: unrecognized option `--exclude-dir=test'

说明版本过老,更新下就ok

(8)查找IP地址 这里用到了-o和-P命令 我们通过man grep查看 -o, –only-matching: Show only the part of a matching line that matches PATTERN. -P, –perl-regexp: Interpret PATTERN as a Perl regular expression. 也就是说-o,只显示匹配行中匹配正则表达式的那部分 -P,作为Perl正则匹配

 [root@localhost ~]# cat file.txt wtmp begins Mon Feb 24 14:26:08 2014 192.168.0.1 162.12.0.123 "123" 123""123 njuhwc@163.com njuhwc@gmil.com 123 www.baidu.com tieba.baidu.com www.google.com www.baidu.com/search/index [root@localhost ~]# grep -oP "([0-9]{1,3}\.){3}[0-9]{1,3}" file.txt 192.168.0.1 162.12.0.123

(9)查找邮箱

 [root@localhost ~]# grep -oP "[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+" file.txt

例子

 [root@localhost ~]# cat file.txt wtmp begins Mon Feb 24 14:26:08 2014 192.168.0.1 162.12.0.123 "123" 123""123 njuhwc@163.com njuhwc@gmil.com 123 www.baidu.com tieba.baidu.com www.google.com www.baidu.com/search/index [root@localhost ~]# grep -oP "[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+" file.txt njuhwc@163.com njuhwc@gmil.com

读到这里,这篇“Linux中怎么使用grep”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux中怎么使用grep

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux中怎么使用grep

本文小编为大家详细介绍“Linux中怎么使用grep”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux中怎么使用grep”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Grep全称Global Regula
2023-06-28

linux中怎么使用grep命令

在Linux中,可以使用grep命令来搜索文件中匹配特定模式的行。其基本语法为:```grep [选项] 模式 [文件名]```其中,选项是可选的,可以用于定制grep命令的行为。常用的选项有:- `-i`:忽略大小写- `-v`:反向匹配
2023-08-18

Linux中grep命令怎么使用

grep命令用于在文件中搜索匹配指定模式的文本行。它的基本语法如下:grep [选项] 模式 [文件]常用的选项包括:`-i`:忽略大小写`-v`:反向匹配,只输出不匹配的行`-r`:递归地搜索指定目录下的文件示例用法:在文件中搜索
2023-10-24

linux中grep怎么用

这篇文章主要为大家展示了“linux中grep怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中grep怎么用”这篇文章吧。在linux中,grep命令用于查找文件里符合条件的字符
2023-06-22

grep命令怎么在Linux中使用

grep命令怎么在Linux中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。grep命令参数grep ‘word’ 文件名grep ‘w
2023-06-13

linux中怎么使用grep看进程号

要使用grep命令来查看进程号,可以按照以下步骤进行操作:1. 打开终端窗口。2. 使用以下命令来获取进程列表:```ps aux```这将显示当前正在运行的所有进程及其相关信息。3. 使用管道符号 `|` 将ps命令的输出传递给grep命
2023-09-15

Linux grep命令怎么使用

这篇文章主要介绍了Linux grep命令怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux grep命令怎么使用文章都会有所收获,下面我们一起来看看吧。Linux常用命令grep是一种强大的文本
2023-06-28

linux中怎么使用grep统计个数

在Linux中,你可以使用`grep`命令结合`wc`命令来统计匹配到的行数。具体的命令格式如下:```shellgrep -c "要匹配的模式" 文件名```例如,假设你要统计一个文件中包含字符串"hello"的行数,你可以使用以下命令:
2023-08-28

linux中find和grep怎么组合使用

在Linux中,可以使用find和grep命令组合来搜索特定文件并在文件中查找匹配的文本。使用find命令来搜索特定类型的文件,然后将结果传递给grep命令,在文件中查找匹配的文本。以下是一个例子:```shellfind /path/to
2023-09-22

Linux中grep命令怎么用

小编给大家分享一下Linux中grep命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!介绍Linux系统中grep命令是一种强大的文本搜索工具,它能使用正
2023-06-09

Linux中grep指令怎么用

这篇文章将为大家详细讲解有关Linux中grep指令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。grep功能说明:查找文件里符合条件的字符串语法:grep[­abcEFGhHilLnqrs
2023-06-16

怎么在linux中使用grep 匹配制表符

本篇文章给大家分享的是有关怎么在linux中使用grep 匹配制表符,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用:[root@dhcp-9-79 ~]# grep $\n
2023-06-09

Linux系统中grep命令怎么用

这篇文章主要介绍了Linux系统中grep命令怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索
2023-06-27

Linux中如何使用grep命令

本篇文章给大家分享的是有关Linux中如何使用grep命令,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1. grep简介grep (global search regular
2023-06-16

linux中使用grep命令详解

linux grep命令 Linux grep命令用于查找文件里符合条件的字符串;也可以用于查找内容包含指定的范本样式的文件。它能使用正则表达式搜索,用于在文件中搜索指定的字符串模式,列出含有匹配模
2022-06-04

linux查找文件命令grep怎么使用

grep是一种用于在文本文件中查找指定内容的命令。它可以根据用户提供的模式匹配规则,搜索文件中的文本并返回匹配的行。基本用法:1. 在当前目录下查找匹配某个字符串的文件:```shellgrep "pattern" *```这会在当前目录下
2023-09-25

Linux中grep命令有什么用

这篇文章给大家分享的是有关Linux中grep命令有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具。无论何种原因,如果你的系统没有预装它的话
2023-06-16

如何在linux中使用grep命令

如何在linux中使用grep命令?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.命令格式:grep [option] pattern file2.命令功能:
2023-06-13

Linux系统中的grep命令怎么用

本篇内容主要讲解“Linux系统中的grep命令怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统中的grep命令怎么用”吧!在Linux系统中grep时最常用的处理文件的的工具
2023-06-28

linux grep模糊匹配方法怎么使用

在Linux中,可以使用`grep`命令进行模糊匹配。`grep`命令用于在文本文件中查找指定模式的行。要使用`grep`命令进行模糊匹配,可以使用以下方法:1. 使用通配符`*`来匹配零个或多个字符。例如,要查找以`abc`开头的行,可以
2023-09-25

编程热搜

目录