过滤文件类容---grep

grep正则表达式应用:

#grep 【option】”pattern” 文件名称

pattern模式

由普通字符和正则表达式的元字符组构成的条件

简单例子

grep "root" /etc/passwd

正则表达式的元字符

(1)匹配单个字符的元字符

. 任意单个字符(前面是一个小点)

grep "r..t" /etc/passwd

 注意:.   代表任意字符,此处有两个  .  ,代表两个任意字符,看下面的例子

  [ ]   代表或者的关系

 连续的字符范围

[a-z]  : a到z的所有小写字母

[A-Z]   : A到Z所有的大写字母

[a-zA-Z] :包含所有的大小写字母 

[0-9]  :0到9的所有数字

[a-zA-Z0-9 ]  :包含所有大小字母和数字

为了方便后面的练习,在此建立个临时文件,写入字符,当做练习的文件

vim 1.txt
rot
rAt
rBt
r1t
root
rVCt
r4t
grep "r[a-z]t" 1.txt

grep "r[A-Z]t" 1.txt

^ 取反

[^a-z]

grep "r[^0-9]t" 1.txt

(2)匹配字符出现的位置

^string  以string开头

 grep "^root" /etc/passwd

对首行[rbh]开头

grep "^[rbh]" /etc/passwd

不是【rbh】开头

grep "^[^rbh]" /etc/passwd

string$  以string$结尾

以bash结尾的

 grep "bash$" /etc/passwd

查看nologin的行数

grep "nologin$" /etc/passwd | wc -l

^$ : 代表 空行

查看目录名称(此处是指目录文件)

ls -l /etc/ | grep "^d"

为了方便后面的练习,在此建立个临时文件,写入字符,当做练习的文件

vim 2.txt
a
ab
abb
abbbb
abbbbb
abbbbbbb

*  匹配其前一个字符出现任意次

  .*任意字符

 grep "ab*" 3.txt

\?   0次或者1次   可有可无

grep "ab\?" 2.txt

\+  1次或者多次   最少1次

grep "ab\+" 2.txt

\{2\}    出现两次

grep "ab\{2\}" 2.txt

\{2,5\}    最少2次,最多5次

grep "ab\{2,5\}" 2.txt

option选项

1)-i 忽略大小写

[root@zhang ~]# grep -i "^r" 1.txt

2)-o 仅显示符合正则表达式的内容,不显示整行

[root@zhang ~]# grep -o  "r..t" /etc/passwd

root

3)-v 反向过滤

[root@zhang ~]# grep -v "^#" /etc/fstab

/dev/mapper/centos-root /                       xfs     defaults        0 0

UUID=20b4a09c-ba00-41d4-a6d5-7dc24bc0a057 /boot                   xfs     defaults        0 0

/dev/mapper/centos-swap swap                    swap    defaults        0 0

4)-e 根据多条件过滤文件

[root@zhang ~]# grep -e "^$" -e "^#" /etc/fstab

#

# /etc/fstab

# Created by anaconda on Mon Jan  7 01:19:06 2019

4)-E 支持扩展正则表达式

grep -E "vmx|svm" /proc/cpuinfo

5)-A n 显示符合条件的后2行

[root@zhang ~]# ifconfig |grep -A 2 "netmask"

        inet 192.168.196.131  netmask 255.255.255.0  broadcast 192.168.196.255

        inet6 fe80::20c:29ff:fe8e:e21b  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:8e:e2:1b  txqueuelen 1000  (Ethernet)

--

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 1000  (Local Loopback)

6)-B n 显示符合条件的前2行

[root@zhang ~]# ifconfig |grep -B 2 "netmask"

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.196.131  netmask 255.255.255.0  broadcast 192.168.196.255

--

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

博主正在自学Linux云计算,有学习的的小伙伴可以相互交流,增强技术。


grep基本详细使用的更多相关文章

  1. Linux中find、grep命令详细用法

    在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 find命令的一般形式 ...

  2. Linux find、grep命令详细用法

    在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下:find命令 find命令的一般形式 ...

  3. grep命令详细解析 --非原创 原作者ggjucheng

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  4. grep、egrep、fgrep的用法与特性详解

    [转载自]http://tanxw.blog.51cto.com/4309543/1361993 开篇        学习Linux也有一段时间了,对Linux多少也算是有点了解了,越是了解也就越对这 ...

  5. 浅析Android设备中grep命令处理流程

    2017-04-18   概述     在TV开发板中,可以在串口中直接使用grep命令.这是因为在/system/bin/下有一个'grep'链接.这个链接指向'/system/bin/toolbo ...

  6. 【Linux相识相知】文本处理工具之grep\egrep\fgrep及正则表达式

    常说Linux上有文本处理的三剑客,grep.sed和awk,本文就grep做出详细的描述,并引出正则表达式. grep NAME:打印模式匹配的行 SYNOPISIS: grep [OPTIONS] ...

  7. linux通过grep根据关键字查找日志文件上下文

    linux通过grep根据关键字查找日志文件上下文 1.在标准unix/linux下的grep命令中,通过以下参数控制上下文的显示: grep -C 10 keyword catalina.out 显 ...

  8. perl之grep函数的用法

    转载至 perl中grep的详细用法 grep有2种表达方式: 1 grep BLOCK LIST 2 grep EXPR, LIST BLOCK表示一个code块,通常用{}表示:EXPR表示一个表 ...

  9. LAMP 之 mysql 安装

    搞了成日 = = 呢个野.... 大部分东西写在 印象笔记 中....不过呢个野特别繁琐,所以记录落黎(小白一枚,大家见谅) 总结下,唔系好容易唔记得 >W< (可能唔会甘完整,我将我自认 ...

随机推荐

  1. function函数——函数的定义及参数

    #_*_coding:utf-8_*_#作者:王佃元#日期:2019/12/21#函数function subrouting \ procedure#函数的意义 # 1.减少代码重复 # 2.更易扩展 ...

  2. <BackTracking> dfs: 39 40

    39. Combination Sum Combination,组合问题用DFS罗列全部的答案. class Solution { public List<List<Integer> ...

  3. docker的一些常用操作

    镜像:一个打包好的应用,还有应用运行的系统.资源.配置等容器:镜像的实例,一个镜像可以有一个或多个实例(容器)对docker容器的变更时写到容器的文件系统的,而不是写到docker镜像中的,可以用一个 ...

  4. [NOI2019]回家路线(最短路,斜率优化)

    终于把这鬼玩意弄完了-- 为什么写的这么丑-- (顺便吐槽 routesea) 最短路的状态很显然:\(f[i]\) 表示从第 \(i\) 条线下来的最小代价. 首先明显要把那个式子拆开.直觉告诉我们 ...

  5. AOP小记

    编程思想演进:POP(Procedure Oriented Programming)-> OOP(Object Oriented Programming)-> AOP(Aspect Ori ...

  6. Go Windows 环境安装及配置(一)

    首先安装windows的包 go1.12.6.windows-amd64.msi cmd 查看下环境变量 go env set GOARCH=amd64 --架构 amd64/arm set GOBI ...

  7. c# 自动给版本升级,遇9变0且前面一个版本加1

    /// <summary> /// 版本辅助类 /// 创建人: /// 创建时间:2019-11-18 13:53:55 /// </summary> public clas ...

  8. Ethics

    1.What are Ethics? Ethics describe a code of behaviour 2.Why Ethics in Data Science is important? da ...

  9. select2的简单使用

    静态下拉列表 修改 type_template.html  引入JS <!-- slect2插件--> <link rel="stylesheet" href=& ...

  10. 【华为云实战开发】8.如何快速搭建C#网站并实现持续集成?【华为云技术分享】

    1 概述 1.1 文章目的 本文通过一个实例介绍如何使用软件开发服务DevCloud完成一个C#Web项目的开发. 1.2 项目详情 1. 项目名称:超级冷笑话网站 2. 项目简介:一个Web网站,包 ...