1、简介

grep 是个很强大的命令,用来找到文件中的匹配文本,并且能够接受正则表达式和通配符,同时可以用多个 grep 命令选项来生成各种格式的输出

1.1 搜索/过滤

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

1.2 返回值

grep 可用于 shell 脚本,因为 grep 通过返回一个状态值来说明搜索的状态

模板搜索成功,则返回 0

搜索不成功,则返回 1

搜索的文件不存在,则返回 2

2、用法/命令格式

grep [OPTIONS] PATTERN [FILE...]

grep [OPTIONS] [-e PATTERN]... [-f FILE]... [FILE...]

3、常用选项

选项

描述

-c

计算找到 '搜寻字符串'的次数

-i

忽略大小写的不同

-n

输出行号

-v

反向选择,打印不匹配的行

-r

递归搜索

--color=auto

将找到的关键词部分加上颜色显示

4、范例

4.1 过滤 单一文件

# grep "root" /etc/passwd --color=auto

# cat /etc/passwd | grep "root" --color=auto

4.2 过滤 文件夹

# grep -R "root" /etc/* --color=auto

5、扩展 -- 正则表达式与 grep 命令

正则表达式是一种符号表示法,被用来识别文本模式;正则表达式元字符由以下字符组成:^ $ . [ ] { } - ? * + ( ) | \

正表达式

描述

^

行 起始 符

$

行尾 符

.

匹配 任意 一个 字符

[]

匹配 [字符] 之中 任意 一个 字符

[字符1-字符2]

匹配 字符1 - 字符2 之间 任意 一个 字符;例如 A - G

{n}

匹配 之前的项 n 次

{n,}

匹配 之前的项 至少 n次

{min,max}

匹配最小/大 值(极值)

?

匹配 0 或 1 个 次

*

匹配 任意 次

+

匹配 一次 或 多次

5.1 匹配 空格(任意)

# grep "^[ \s]\{1,\}" {file_name}

5.2 模糊匹配

## 查找一个五个字母的单词,第三个字母为 j,最后一个字母为 r 内容

# grep '^..j.r$' {file}

5.3 电话 号码 匹配

## 固定电话格式基本都是带有 0 的区号+连接符“-”+电话号码,另外还有可能有分机号,区号有 3 位、4 位,电话号码有 7 位和 8 位的

## 区号:前面一个 0,后面跟 2-3 位数字 : 0[0-9]{2,3}

## 电话号码:7-8 位数字: [0-9]{7,8}

## 分机号:一般都是 3-4 位数字: [0-9]{3,4}

## -E 选项,grep 会识别 正则表达式的元字符

# grep -E "^0[0-9]{2,3}-[0-9]{7,8}(-[0-9]{3,4})?$" {telphone.txt}

linux中grep命令返回值,Linux 操作命令 grep相关推荐

  1. linux变量接收命令返回值,Linux Shell教程(一)

    函数返回值 函数返回值,可以显式增加return语句:如果不加,会将最后一条命令运行结果作为返回值. 函数返回值在调用该函数后通过 $? 来获得. 范例1 来看一个带有return语句的函数: #!/ ...

  2. linux中grep命令返回值,linux命令--grep命令

    grep是用linux中用来进行文本搜索的工具,它使用的是正则表达式进行搜索. grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在, ...

  3. linux中create命令详解,linux中 pmap 命令详解

    通过查看帮助,返回了如下信息: Usage: pmap [options] pid [pid ...] Options: -x, --extended show details -X show eve ...

  4. linux中jstack命令详解,Linux jstack命令详解

    jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息. 如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack ...

  5. linux中groupadd命令详解,linux groupadd命令权限群组详解

    首页 > Linux教程 > 常用命令 > group/user 群组和用户 linux groupadd命令权限群组详解 linux中groupadd命令用于创建一个新的工作组,新 ...

  6. linux中替换命令详解,linux中sed命令字符串替换的用法详解

    Linux系统中sed命令可以将字符串批量替换,省去了很多麻烦,下面由学习啦小编为大家整理了linux系统中sed命令字符串替换的用法详解,希望对大家有帮助! linux中sed命令字符串替换的用法详 ...

  7. linux中内部命令有哪些,linux内部命令有哪些

    linux中常见的内部命令有:1.exit命令,退出当前的shell:2.history命令,显示历史执行过的命令:3.cd命令,切换当前工作目录:4.source命令,重新执行刚修改的初始化文件:5 ...

  8. linux中tail命令的作用,Linux中tail命令用法详解

    tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...

  9. linux中dd命令详解,Linux中DD命令详解

    Linux中DD命令详解 1.dd命令简介 功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换.可以用该命令实现DOS下的diskcopy命令的作用.先用dd命令把软盘上的 ...

最新文章

  1. map转字符串数组中 php_js将map转换成数组
  2. py3下怎么用StringIO
  3. 车牌颜色识别现在的结果
  4. 洛谷P6140 [USACO07NOV]Best Cow Line S
  5. 【学习 OpenCV】—— 图像减色(color reduced)
  6. 三羊献瑞——第六届蓝桥杯C语言B组(省赛)第三题
  7. JIT编译对比AOT编译(附图片)
  8. iPad 隐藏按钮获取函数
  9. 网络规划设计师教程第二版目录
  10. 【每日早报】2019/08/19
  11. 操作系统 | Linux基础教程
  12. 北京航空航天大学计算机考研信息汇总
  13. 网线制作相关基础知识
  14. Vue3:基础学习笔记
  15. 生产计划排产软件如何解决生产难题?
  16. windows10启动项修复||an operating system wasn't found解决办法
  17. 网络抓包工具wireshark的使用
  18. css创意立体字特性
  19. 单词 2012-01-19
  20. 关闭jupyter notebook报错

热门文章

  1. excel能不能用python编程_用Python让Excel飞起来
  2. 应用心理学跨考计算机难不难,关于心理学考研的难度
  3. 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。
  4. 第三代搜索引擎何去何从?
  5. Linux上批量清空日志文件(非删除)
  6. 新能源共享充电桩管理运营平台
  7. windows的USB插拔事件日志
  8. 【破文标题】企业报表处理软件(2005版)免光盘破解
  9. STM32+ESP8266连接服务器失败,不断发送OneNet_DevLink
  10. Owncloud vs.NextCloud vs.Seafile:你应该选择哪种自管理云存储?