返回顶部
首页 > 资讯 > 操作系统 >Linux中怎么使用grep
  • 252
分享到

Linux中怎么使用grep

2023-06-28 14:06:38 252人浏览 独家记忆
摘要

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

本文小编为大家详细介绍“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”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网操作系统频道。

--结束END--

本文标题: Linux中怎么使用grep

本文链接: https://lsjlt.com/news/320080.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux中怎么使用grep
    本文小编为大家详细介绍“Linux中怎么使用grep”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux中怎么使用grep”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Grep全称Global Regula...
    99+
    2023-06-28
  • Linux中grep命令怎么使用
    grep命令用于在文件中搜索匹配指定模式的文本行。它的基本语法如下: grep [选项] 模式 [文件] 常用的选项包括: `-i...
    99+
    2023-10-24
    Linux
  • linux中怎么使用grep命令
    在Linux中,可以使用grep命令来搜索文件中匹配特定模式的行。其基本语法为:```grep [选项] 模式 [文件名]```其中...
    99+
    2023-08-18
    linux grep
  • linux中grep怎么用
    这篇文章主要为大家展示了“linux中grep怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中grep怎么用”这篇文章吧。在linux中,grep命令用于查找文件里符合条件的字符...
    99+
    2023-06-22
  • grep命令怎么在Linux中使用
    grep命令怎么在Linux中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。grep命令参数grep ‘word’ 文件名grep ...
    99+
    2023-06-13
  • Linux grep命令怎么使用
    这篇文章主要介绍了Linux grep命令怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux grep命令怎么使用文章都会有所收获,下面我们一起来看看吧。Linux常用命令grep是一种强大的文本...
    99+
    2023-06-28
  • linux中怎么使用grep看进程号
    要使用grep命令来查看进程号,可以按照以下步骤进行操作:1. 打开终端窗口。2. 使用以下命令来获取进程列表:```ps aux`...
    99+
    2023-09-15
    linux
  • linux中find和grep怎么组合使用
    在Linux中,可以使用find和grep命令组合来搜索特定文件并在文件中查找匹配的文本。使用find命令来搜索特定类型的文件,然后...
    99+
    2023-09-22
    linux
  • linux中怎么使用grep统计个数
    在Linux中,你可以使用`grep`命令结合`wc`命令来统计匹配到的行数。具体的命令格式如下:```shellgrep -c "...
    99+
    2023-08-28
    linux grep
  • Linux中grep命令怎么用
    小编给大家分享一下Linux中grep命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!介绍Linux系统中grep命令是一种强大的文本搜索工具,它能使用正...
    99+
    2023-06-09
  • Linux中grep指令怎么用
    这篇文章将为大家详细讲解有关Linux中grep指令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。grep功能说明:查找文件里符合条件的字符串语法:grep[­abcEFGhHilL...
    99+
    2023-06-16
  • 怎么在linux中使用grep 匹配制表符
    本篇文章给大家分享的是有关怎么在linux中使用grep 匹配制表符,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用:[root@dhcp-9-79 ~]#&nbs...
    99+
    2023-06-09
  • Linux系统中grep命令怎么用
    这篇文章主要介绍了Linux系统中grep命令怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索...
    99+
    2023-06-27
  • linux中使用grep命令详解
    linux grep命令 Linux grep命令用于查找文件里符合条件的字符串;也可以用于查找内容包含指定的范本样式的文件。它能使用正则表达式搜索,用于在文件中搜索指定的字符串模式,列出含有匹配模式子符串的文件名,并输...
    99+
    2022-06-04
    linux grep
  • Linux中如何使用grep命令
    本篇文章给大家分享的是有关Linux中如何使用grep命令,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1. grep简介grep (global search regular...
    99+
    2023-06-16
  • Linux系统中的grep命令怎么用
    本篇内容主要讲解“Linux系统中的grep命令怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统中的grep命令怎么用”吧!在Linux系统中grep时最常用的处理文件的的工具...
    99+
    2023-06-28
  • 如何在linux中使用grep命令
    如何在linux中使用grep命令?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.命令格式:grep [option] pattern&n...
    99+
    2023-06-13
  • grep命令如何在linux中使用
    grep命令如何在linux中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、grep的语法[]  (man grep查看grep的帮助文档) &nb...
    99+
    2023-06-13
  • linux grep模糊匹配方法怎么使用
    在Linux中,可以使用`grep`命令进行模糊匹配。`grep`命令用于在文本文件中查找指定模式的行。要使用`grep`命令进行模...
    99+
    2023-09-25
    linux
  • linux查找文件命令grep怎么使用
    grep是一种用于在文本文件中查找指定内容的命令。它可以根据用户提供的模式匹配规则,搜索文件中的文本并返回匹配的行。基本用法:1. ...
    99+
    2023-09-25
    linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作