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

linux基础命令grep的使用方法

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

linux基础命令grep的使用方法

本篇内容主要讲解“linux基础命令grep的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux基础命令grep的使用方法”吧!

在linux中经常需要对文本或输出内容进行过滤,最常用的过滤命令是grep

grep [OPTIONS] PATTERN [FILE...]

grep按行检索输入的每一行,如果输入行包含模式PATTERN,则输出这一行。这里的PATTERN是正则表达式(参考前一篇,本文将结合grep一同举例)。

输出文件/etc/passwd中包含root的行:

[root@centos7 temp]# grep root /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin

或者从标准输入获得:

[root@centos7 temp]# cat /etc/passwd | grep root root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin

需要注意的地方是:当grep的输入既来自文件也来自标准输入时,grep将忽略标准输入的内容不做处理,除非使用符号-来代表标准输入:

[root@centos7 temp]# cat /etc/passwd | grep root /etc/passwd - /etc/passwd:root:x:0:0:root:/root:/bin/bash /etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin (标准输入):root:x:0:0:root:/root:/bin/bash(标准输入):operator:x:11:0:operator:/root:/sbin/nologin

此时,grep会标明哪些结果来自于文件哪些来自于标准输入。

输出文件/etc/passwd和文件/etc/group中以root开头的行:

[root@centos7 temp]# grep "^root" /etc/passwd /etc/group /etc/passwd:root:x:0:0:root:/root:/bin/bash /etc/group:root:x:0:

输出文件/etc/passwd中以/bin/bash结尾的行:

[root@centos7 temp]# grep "/bin/bash$" /etc/passwd root:x:0:0:root:/root:/bin/bash learner:x:1000:1000::/home/learner:/bin/bash

注意以上两个例子中PATTERN被双引号引用起来以防止被shell解析。

输出文件/etc/passwd中不以a-s中任何一个字母开头的行:

[root@centos7 temp]# grep "^[^a-s]" /etc/passwd  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin

这里需要理解两个^间不同的含义,***个^表示行首,第二个在[]内部的***字符^表示取反。

输出文件/etc/passwd中字符0连续出现3次及以上的行(注意转义字符'\'):

[root@centos7 temp]# grep "0\{3,\}" /etc/passwd learner:x:1000:1000::/home/learner:/bin/bash

如输出文件/etc/passwd中以字符r或l开头的行:

[root@centos7 temp]# grep "^[r,l]" /etc/passwd root:x:0:0:root:/root:/bin/bash lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin learner:x:1000:1000::/home/learner:/bin/bash

选项-i使grep在匹配模式时忽略大小写:

[root@centos7 temp]# grep -i abcd file  ABCD function abcd() { [root@centos7 temp]#

选项-o表示只输出匹配的字符,而不是整行:

[root@centos7 temp]# grep -oi abcd file  ABCD abcd [root@centos7 temp]#

选项-c统计匹配的行数:

[root@centos7 temp]# grep -oic abcd file  2 [root@centos7 temp]#

选项-v表示取反匹配,如输出/etc/passwd中不以/sbin/nologin结尾的行:

[root@centos7 temp]# grep -v "/sbin/nologin$" /etc/passwd root:x:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt learner:x:1000:1000::/home/learner:/bin/bash

选项-f FILE表示以文件FILE中的每一行作为模式匹配:

[root@centos7 temp]# cat test abcd ABCD [root@centos7 temp]# grep -f test file  ABCD function abcd() { [root@centos7 temp]#

选项-x表示整行匹配:

[root@centos7 temp]# grep -xf test file  ABCD [root@centos7 temp]#

选项-w表示匹配整个单词:

[root@centos7 temp]# grep here file here there [root@centos7 temp]# grep -w here file here [root@centos7 temp]#

选项-h表示当多个文件时不输出文件名:

[root@centos7 temp]# cat /etc/passwd|grep ^root - /etc/passwd -h root:x:0:0:root:/root:/bin/bash root:x:0:0:root:/root:/bin/bash

选项-n表示显示行号:

[root@centos7 temp]# grep -n "^[r,l]" /etc/passwd 1:root:x:0:0:root:/root:/bin/bash 5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 24:learner:x:1000:1000::/home/learner:/bin/bash

选项-A N、-B N、-C N表示输出匹配行和其'周围行'

-A N 表示输出匹配行和其之后(after)的N行 -B N 表示输出匹配行和其之前(before)的N行 -C N 表示输出匹配行和其之前之后各N行 [root@centos7 temp]# grep -A 2 ^operator /etc/passwd operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [root@centos7 temp]# grep -B2 ^operator /etc/passwd    halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin [root@centos7 temp]# grep -C1 ^operator /etc/passwd   mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin

选项-F视PATTERN为它的字面意思匹配(忽略字符的特殊含义),等同于执行命令fgrep:

[root@centos7 temp]# grep -F ^root /etc/passwd [root@centos7 temp]#

命令无输出

选项-E可以使用扩展的正则表达式,如同执行egrep命令:

[root@centos7 temp]# egrep "^root|^learner" /etc/passwd root:x:0:0:root:/root:/bin/bash learner:x:1000:1000::/home/learner:/bin/bash

使用扩展正则表达式意味着不需要转义就能表示字符的特殊含义,包括?,+,{,|,(和)。

选项-P表示使用perl的正则表达式进行匹配

如:

[root@centos7 ~]# echo "helloworld123456"| grep -oP "\d+" 123456 [root@centos7 ~]#

perl正则中"\d"表示数字,+表示匹配一到多次(同vim)。

选项-a将二进制文件当成文本文件处理:

[root@centos7 ~]# grep -a online /usr/bin/ls %s online help: <%s> [root@centos7 ~]#

选项--exclude=GLOB和--include=GLOB分别表示排除和包含匹配GLOB的文件,GLOB表示通配符(find及xargs用法见基础命令介绍三):

[root@centos7 temp]# find . -type f | xargs grep --exclude=*.txt --include=test* bash ./test.sh:#!/bin/bash [root@centos7 temp]#

到此,相信大家对“linux基础命令grep的使用方法”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

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

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

linux基础命令grep的使用方法

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

下载Word文档

猜你喜欢

linux基础命令grep的使用方法

本篇内容主要讲解“linux基础命令grep的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux基础命令grep的使用方法”吧!在linux中经常需要对文本或输出内容进行过滤,最常
2023-06-16

Linux基础命令grep的用法

本篇内容主要讲解“Linux基础命令grep的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux基础命令grep的用法”吧!grep按照指定的模式,在文件中搜索匹配的行,将结果显示在标
2023-06-06

Linux基础命令paste的使用方法

这篇文章主要讲解了“Linux基础命令paste的使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux基础命令paste的使用方法”吧!paste将指定的文件按照列的方式合并,将
2023-06-06

linux文本过滤grep基础命令介绍(5)

在linux中经常需要对文本或输出内容进行过滤,最常用的过滤命令是grep grep [OPTIONS] PATTERN [FILE...] grep按行检索输入的每一行,如果输入行包含模式PATTERN,则输出这一行。这里的PATTERN
2022-06-04

Linux基础命令uname的用法

本篇内容介绍了“Linux基础命令uname的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!unameuname指令用来显示计算机硬件以
2023-06-05

Linux基础命令sysctl的用法

这篇文章主要介绍“Linux基础命令sysctl的用法”,在日常操作中,相信很多人在Linux基础命令sysctl的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux基础命令sysctl的用法”的疑
2023-06-05

Linux基础命令lpq的用法

本篇内容介绍了“Linux基础命令lpq的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!lpqlpq指令用来显示当前打印队列的状态。如果
2023-06-05

Linux基础命令killall的用法

这篇文章主要介绍“Linux基础命令killall的用法”,在日常操作中,相信很多人在Linux基础命令killall的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux基础命令killall的用法
2023-06-05

Linux基础命令finger的用法

本篇内容介绍了“Linux基础命令finger的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!fingerfinger指令用来查找、显示
2023-06-05

Linux基础命令passwd的用法

本篇内容介绍了“Linux基础命令passwd的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!passwd更改用户密码,超级用户可以修改
2023-06-05

Linux基础命令useradd的用法

这篇文章主要讲解了“Linux基础命令useradd的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux基础命令useradd的用法”吧!useradd创建新的系统用户,usera
2023-06-05

Linux基础命令chsh的用法

这篇文章主要介绍“Linux基础命令chsh的用法”,在日常操作中,相信很多人在Linux基础命令chsh的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux基础命令chsh的用法”的疑惑有所帮助!
2023-06-05

Linux基础命令wc的用法

本篇内容主要讲解“Linux基础命令wc的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux基础命令wc的用法”吧!wc统计文件的字节数、单词数、行数。此命令的适用范围:RedHat、
2023-06-05

Linux基础命令vim的用法

本篇内容主要讲解“Linux基础命令vim的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux基础命令vim的用法”吧!vimvim是unix系统最通用的文本编辑器,它的功能可以说是非
2023-06-05

Linux基础命令tee的用法

这篇文章主要介绍“Linux基础命令tee的用法”,在日常操作中,相信很多人在Linux基础命令tee的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux基础命令tee的用法”的疑惑有所帮助!接下来
2023-06-06

Linux基础命令zipinfo的用法

本篇内容介绍了“Linux基础命令zipinfo的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!zipinfo在不解压的情况下,获取zi
2023-06-05

Linux基础命令rm的用法

这篇文章主要讲解了“Linux基础命令rm的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux基础命令rm的用法”吧!rm删除文件和目录,默认情况下不会删除目录。此命令的适用范围:
2023-06-06

Linux基础命令fsck的用法

这篇文章主要介绍“Linux基础命令fsck的用法”,在日常操作中,相信很多人在Linux基础命令fsck的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux基础命令fsck的用法”的疑惑有所帮助!
2023-06-06

Linux基础命令chkconfig的用法

这篇文章主要介绍“Linux基础命令chkconfig的用法”,在日常操作中,相信很多人在Linux基础命令chkconfig的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux基础命令chkcon
2023-06-06

Linux基础命令service的用法

本篇内容主要讲解“Linux基础命令service的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux基础命令service的用法”吧!serviceservice可以控制系统服务(打
2023-06-06

编程热搜

目录