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符合要求。

.:所有的单个字符。

*:有字符,长度可以为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

Linux gerp 命令使用方法相关推荐

  1. Linux 常用命令使用方法

    Linux 常用命令使用方法 1.# 表示权限用户(如:root),$ 表示普通用户  开机提示:Login:输入用户名  password:输入口令   用户是系统注册用户成功登陆后,可以进入相应的 ...

  2. linux打开python3_Python3 执行Linux Bash命令的方法

    和之前C++执行Linux Bash命令的方法 一样,Python依然支持system调用和popen()函数来执行linux bash命令. 方法一:system调用 #仅仅在一个子终端运行系统命令 ...

  3. Linux 常用命令使用方法大搜刮

    Linux 常用命令使用方法大搜刮 1.# 表示权限用户(如:root),$ 表示普通用户   开机提示:Login:输入用户名   password:输入口令   用户是系统注册用户成功登陆后,可以 ...

  4. Linux基础命令学习——方法二(给swap分区增加500M)

    在之前的博客中也有相关介绍,将Swap分区扩展500M,当然有很多方法,今天来记录第二种方法. 上篇介绍swap分区扩展500M的方法: Linux基础命令学习--实战篇(给swap分区增加500M) ...

  5. linux扩容文件系统resize2fs,linux resize2fs命令设置方法

    相信很多人不太了解resize2fs命令的用法,下面由学习啦小编为大家整理了linux resize2fs命令,希望大家喜欢! linux resize2fs命令 resize2fs命令被用来增大或者 ...

  6. linux kill命令使用方法,Linux初学者的killall命令(8个例子)

    Linux初学者的killall命令(8个例子) 我们已经讨论了kill命令 ,如果你想在Linux中终止进程,你可以使用kill命令 . 但是,还有一个命令行实用程序可以用于相同的目的: killa ...

  7. Linux awk命令使用方法

    awk是linux上非常好用的文本处理工具,常用于指定列的处理,包括获取指定列的内容.根据指定列匹配关系输出等文本处理.本文主要描述awk命令的基本语法.正则表达式与操作符的使用.常用内置变量的含义和 ...

  8. Linux常用命令使用方法大搜刮

    http://blog.csdn.net/lunix01/article/details/7300770 1.# 表示权限用户(如:root),$ 表示普通用户 开机提示:Login:输入用户名   ...

  9. linux clock命令使用方法,Linux dateclock命令

    Linux系统手动更改时间可以用date命令,具体可以man date查看详细使用方法 格式:date mmddHHMM               就是"月日时分" 格式:dat ...

  10. linux dig 命令使用方法

    dig 命令主要用来从 DNS 域名服务器查询主机地址信息. 查询单个域名的 DNS 信息 dig 命令最典型的用法就是查询单个主机的信息. $ dig baidu.com dig 命令默认的输出信息 ...

最新文章

  1. AntD 官网样例 InputRef报错原因
  2. 一个历时五天的 Bug,是如何被灭的?
  3. 安装linux没有raid驱动程序,LINUX 无法在 RAID 上安装的问题
  4. Spark学习之路 (十七)Spark分区
  5. Springboot基于thymeleaf的一个简单的学生管理系统
  6. java numberformat_java 之 格式化输出 NumberFormat
  7. python 获取英文人名翻译
  8. wowza流媒体服务器最详细教程-wowza安装配置及优化
  9. 使用GLAD加载OpenGL的库
  10. android 解压jar,解压和打包Jar - 海阔天空玩世不恭的个人空间 - OSCHINA - 中文开源技术交流社区...
  11. CSS 特殊性(Specificity)
  12. Moneybookers API支付方式开发 步骤
  13. 驾驭你的“职场布朗运动” (作者李云)
  14. 数据库和数据库软件的安装
  15. python 协程库_python --- 协程编程(第三方库gevent的使用)
  16. ECN Trade:QE3仅是镇定剂,美好前景只是幻想
  17. 前端—基于Flask框架调用百度接口实现语音识别功能(使用蓝图blueprint)
  18. 简单介绍一下“前向安全”的知识(从零开始学区块链 137)
  19. 实现pdf浏览器下载(非预览)
  20. python学习笔记 之爬取图片

热门文章

  1. 【IDE】Intellij IDEA启动正常,但是任务栏不显示图标
  2. 解决502 bad gateway的九种方案及原因
  3. 马克思主义原理 - 圣才思维导图
  4. 模板引擎?看这一篇就懂了
  5. (附源码)springboot校园疫情智慧防控微信小程序 毕业设计 011133
  6. STM32——时钟、HSE、旁路模式、有源晶振
  7. 【WEB搜索技术】课程学习大纲与学习感悟
  8. (1)前言-JsDroid引流脚本混合式开发技术系列教程By飞云脚本学院
  9. 你真的会写for循环吗?来看看这些常见的for循环优化方式
  10. 【论文阅读笔记】Beamforming Optimization for Wireless Network Aided by IRS with Discrete Phase Shifts