Linux三剑客——grep命令

过滤文本grep命令

  1. grep是一种强大的文本搜索工具命令,用于查找文件中符合指定格式的字符串,支持正则表达式。如不指定任何文件名称,或是所给予的文件为“-”,则grep命令从标准输入设备读取数据。grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep命令有很小不同。egrep是grep的扩展。fgrep就是fixed grep或fast grep,该命令使用任何正则表达式中的元字符表示其自身的字面意义,不在特殊。其中egrep就等同于“grep -E”,fgrep等同于“grep -F”。Linux中grep功能强大,支持很多丰富的参数,可以方面的进行一些文本处理工作。
  2. grep单独使用时至少有两个参数,如少于两个参数,grep会一直等待,直到该程序被中断。如果遇到了这样的情况,可以按“Ctrl+c”终止。默认的情况下只搜索当前目录,如果递归查找子目录,可使用“r”选项。

    示例

    #在指定文件中查找特定字符串
    [[email protected] ~]# grep root /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    #结合管道一起使用
    [[email protected] ~]# cat /etc/passwd | grep root
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    #将显示符合条件的内容所在的行号
    [[email protected] ~]# grep -n root /etc/passwd
    1:root:x:0:0:root:/root:/bin/bash
    10:operator:x:11:0:operator:/root:/sbin/nologin
    #反向查询
    [[email protected] ~]# cat file1
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    max_connections=10000
    [[email protected] ~]# grep var file1
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    [[email protected] ~]# grep -v var file1
    [mysqld]
    max_connections=10000
    #递归查找
    [[email protected] ~]# grep -r var . | head -3
    Binary file ./CentOS-7-x86_64-DVD-1511.iso matches
    ./file1:datadir=/var/lib/mysql
    ./file1:socket=/var/lib/mysql/mysql.sock
    #按正则表达式查找
    [[email protected] ~]# grep -E "datadir|socket" /etc/my.cnf
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    #列出匹配字符串的文件名
    [[email protected] ~]# grep -l var file1
    file1
    #列出不匹配字符串的文件名
    [[email protected] ~]# grep -L VAR file1
    file1
    #除了显示匹配的行,分别显示该行上下文的N行
    [[email protected] ~]# grep -C1 var file1
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    max_connections=10000

    常见grep正规参数

参数 说明
^ 指定匹配字符串的行首
$ 指定匹配字符串的结尾
* 表示0个以上的字符
+ 表示1个以上的字符
| 去掉指定字符的表述含义
. 匹配一个非换行符的字符
匹配零个或多个先前的字符
+ 匹配一个或多个先前的字符

原文地址:https://blog.51cto.com/9103824/2378464

时间: 2024-10-06 03:02:13

Linux三剑客——grep命令的相关文章

linux的grep命令

grep是一种强大的文本搜索工具,它能够使用正则表达式搜索文本,并将搜索到的内容打印出来. grep命令的格式:grep [options] PATTERN [FILE..] 搜索成功将执行状态为0,未搜索到将返回1,搜索文件的路径错误将返回2. [options]: -c:显示匹配到了多少行 -n:为输出的文件添加行号 -v:显示没匹配到的行 -o:只显示被匹配到的字符串 -i:忽略大小写 --color: 给匹配到的字符添加颜色 [PATTERN]: PATERN可以使普通的字符串,也可以使

12个 Linux 中 grep 命令的超级用法实例

12个 Linux 中 grep 命令的超级用法实例 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和RHEl/CentOS/Fedora系中的yum). $ sudo apt-get install grep #Debian/Ubuntu

Linux三剑客——sed命令简述

Linux三剑客--sed13.1 sed介绍 sed--流编辑器(stream editor) sed功能与版本:处理文本文件,日志,配置文件增加.删除.修改.查询sed --version 语法格式:sed [选项] [sed指令] [输入文件]sed -i.bak 's#boy#girl#g' oldboy.txt-i sed命令的参数s sed命令g 小尾巴/修饰 sed命令执行过程13.2 sed命令功能示例 等号'='显示行号 sed = person.txt 单行-输入行号即可 s

Linux三剑客-常用命令

Linux三剑客:grep, awk, sed. Linux命令搜索及查看-> 点击这里. grep 命令 :强大的文本'搜索'工具 grep -n 'word' file_name   在file_name文件中找到word所在的所有行并显示.-n 为显示行号 grep 'w[ea]ll' file_name     在file_name文件中找到wall 或者是well 所在的所有行并显示 grep 'w[^e]ll' file_name     在file_name文件中找到"非we

Linux三剑客grep/sed/awk

grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color=auto 或者 --color:表示对匹配到的文本着色显示 -i:在搜索的时候忽略大小写 -n:显示结果所在行号 -c:统计匹配到的行数,注意,是匹配到的总行数,不是匹配到的次数 -o:只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行 -v:输出不带关键字的行(反向查询,反

Linux的grep命令详解

简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. Unix的grep家族包括grep.egrep和fgrep.egrep和fgrep的命令只跟grep有很小不同.egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也

Linux之grep命令

简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. Unix的grep家族包括grep.egrep和fgrep.egrep和fgrep的命令只跟grep有很小不同.egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也

Linux中grep命令学习

1.简介 grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep.egrep和fgrep的命令只跟grep有很小不同.egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就说,正则表达式中的元字符表示回其自身的字面意义,不再特殊.linux使用GNU版本的grep.它功能更强,可以通过-G.-E.-F命令行选项来使用egre

linux中grep命令-From cyber

1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expr ession Print,表示全局正则表达式版本,它的使用权限是所有用户. 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数. -I:不区分大 小写(只适用于单字符). -h:查询多文件时不显示文件名. -l:查询多文件时只输出包含匹配字符的文件名. -n:显示匹配行及