专栏首页howtouselinuxGrep命令使用方法

Grep命令使用方法

Linux grep命令

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

grep的工作方式是这样的:它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。

基本语法:

grep options pattern files

options的主要参数:

-a 或 –text : 不要忽略二进制的数据。

-A<显示行数> 或 –after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。

-b 或 –byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。

-B<显示行数> 或 –before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。

-c 或 –count : 计算符合样式的列数。

-C<显示行数> 或 –context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。

-d <动作> 或 –directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。

-e<范本样式> 或 –regexp=<范本样式> : 指定字符串做为查找文件内容的样式。

-E 或 –extended-regexp : 将样式为延伸的普通表示法来使用。

-f<规则文件> 或 –file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。

-F 或 –fixed-regexp : 将样式视为固定字符串的列表。

-G 或 –basic-regexp : 将样式视为普通的表示法来使用。

-h 或 –no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。

-H 或 –with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。

-i 或 –ignore-case : 忽略字符大小写的差别。

-l 或 –file-with-matches : 列出文件内容符合指定的样式的文件名称。

-L 或 –files-without-match : 列出文件内容不符合指定的样式的文件名称。

-n 或 –line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。

-o 或 –only-matching : 只显示匹配PATTERN 部分。

-q 或 –quiet或–silent : 不显示任何信息。

-r 或 –recursive : 此参数的效果和指定”-d recurse”参数相同。

-s 或 –no-messages : 不显示错误信息。

-v 或 –revert-match : 显示不包含匹配文本的所有行。

-V 或 –version : 显示版本信息。

-w 或 –word-regexp : 只显示全字符合的列。

-x –line-regexp : 只显示全列符合的列。

-y : 此参数的效果和指定”-i”参数相同。

-?:同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2行。

pattern正则表达式主要参数:

\:忽略正则表达式中特殊字符的原含义。

^:匹配正则表达式的开始行。

$:匹配正则表达式的结束行。

\<:从匹配正则表达式的行开始。

>:到匹配正则表达式的行结束。

[]:单个字符,如A即A符合要求。

– :范围,如A-Z,即A、B、C一直到Z都符合要求。

.:所有的单个字符。

*:有字符,长度可以为0。

代码示例:

示例1:在当前目录中,查找前缀有“test”字样的文件中包含“test”字符串的文件,并打印出该字符串的行,此时,可以使用如下命令:

grep test test*

输出:

testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行

testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行

testfile_2:Linux test #列出testfile_2 文件中包含test字符的行

示例2:反向查找,通过”-v”参数可以打印出不符合条件行的内容。查找文件名中包含test 的文件中不包含test 的行

grep -v test test

输出:

testfile1:helLinux!

testfile1:Linis a free Unix-type operating system.

testfile1:Lin

testfile_1:HELLO LINUX!

testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.

testfile_1:THIS IS A LINUX TESTFILE!

testfile_2:HELLO LINUX!

testfile_2:Linux is a free unix-type opterating system.

Search Text in Files in Linux with Grep Command

20 Advanced Linux Find Command Examples

Find File By Name in Linux

Find Files in Linux with Find Command Examples

原文链接:https://www.howtouselinux.com/post/search-text-in-files-with-grep-command-in-linux

相关文章

  • grep命令的基本介绍 grep命令的使用方法

    如今的社会已经进入了大数据时代,庞大的数据使得很多的人望而却步。然而有时却必须要在大数据之中找到特定的数据,这让很多的程序员感到头疼。通过这款软件中的grep命...

    用户8739990
  • grep的常用命令语法

    1. 双引号引用和单引号引用 在g r e p命令中输入字符串参数时,最好将其用双引号括起来。例如:“m y s t r i n g”。这样做有两个原因,一是以...

    一见
  • Linux常用命令之grep命令用法详解

    grep是linux的常用命令,用于对文件和文本执行重复搜索任务的Unix工具,可以通过grep命令指定特定搜索条件来搜索文件及其内容以获取有用的信息。

    砸漏
  • linux中使用grep命令详解

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

    砸漏
  • 练习使用 Linux 的 grep 命令

    grep( 全局正则表达式打印(Global Regular Expression Print))是由 Ken Thompson 早在 1974 年开发的基本 ...

    用户1880875
  • Linux基本命令之grep命令常见用法

    grep命令可以说是Linux下面最常用的文本处理工具了,那么究竟我们可以用grep命令做什么了?首先我们想一想在windows下是我们是如何在整个文本中寻找我...

    zenRRan
  • Linux - 常用命令:grep

    参数 -c 只输出匹配行的个数。 -i 不区分大小写(只适用于单字符)。 -h 查询多文件时不显示文件名。 -l 查询多文件时只输出包含匹配字符的文件名。 -n...

    以谁为师
  • linux常用命令 grep

    grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

    用户7999227
  • ​如何在Linux中使用grep命令?

    在本文中,我们将讨论一个linux命令,该命令在Linux中进行搜索非常有用。那就是“ grep”命令。我们可以使用grep搜索文件中的文本模式,另一方面,可以...

    用户6543014
  • grep命令遇到 Binary file matches解决方法

    今天在grep数据库(Mysql)bilog文件的时候,终端返回报错:Binary file mysql-bin.000840 matches。

    行 者
  • linux命令使用方法

    在虚拟机软件的菜单栏中一次选择“虚拟机->设置->选项->共享文件夹”,在右侧选启用或在下次电源关闭或挂起前启用,点击下面的添加,下一步,在主机路径中选中win...

    用户1396155
  • Linux常用命令03 - grep

    grep 命令代表“全局正则表达式 print” ,它是 Linux 中最强大和最常用的命令之一。

    叉叉敌
  • Disable-Mailbox命令使用方法

    员工离职后,为了禁止员工登录邮箱,造成不必要的麻烦,所以需要禁用离职员工的Exchange账户。

    BigYoung小站
  • Linux mktemp 命令使用方法

    Linux mktemp命令用于建立暂存文件。mktemp建立的一个暂存文件,供shell script使用。

    用户8704998
  • grep、awk、paste命令应用 原

    注: 在awk中使用脱义字符‘\’是起不到作用的,如果想打印特殊字符,只能使用 '""' 这样的组合才可以。 这里自左至右为单引号、双引号、双引号、单引号其中...

    阿dai学长
  • Linux 常用命令之Linux more命令使用方法

    more 是我们最常用的工具之一,最常用的就是显示输出的内容,然后根据窗口的大小进行分页显示,然后还能提示文件的百分比。

    砸漏
  • Linux常用命令history命令具体使用方法

    Linux常用命令history命令用于显示用户以前执行过的历史命令,并且能对历史命令进行追加和删除等操作,下面为大家分享一下Linux常用命令history命...

    用户4988085
  • centos8常用命令insmod命令具体使用方法

    centos8常用命令nsmod命令用于载入模块,Linux有许多功能是通过模块的方式,在需要时才载入kernel。如此可使kernel较为精简,进而提高效率,...

    用户8965210
  • Linux常用命令help命令具体使用方法

    Linux常用命令help命令 用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或...

    用户4988085

扫码关注云+社区

领取腾讯云代金券