Linux 学习总结(十九)正则三剑客之grep

grep
过滤器,egrep可以理解为grep的升级版
1 格式:grep [-cinvABC] ‘word‘ filename
-c:统计符合要求的行数
例如 : grep -c ‘root‘ /etc/passwd
grep -c ‘‘ /etc/passwd 统计文件总行数
-i:忽略大小写
-n:行号输出
grep -n ‘root‘ /etc/passwd
-v 打印不符合要求的行, 补集
-An 打印符合要求的行同时带上下面n行,n为数字
-Bn 打印符合要求的同时带上上面n行
-Cn 打印符合要求的同时上下都带上n行
附上-c ,-n ,-v的运行结果
grep ‘root‘ -c /etc/passwd;grep ‘‘/etc/passwd -c

head /etc/passwd |grep ‘root‘ -n

head -3 /etc/passwd |grep ‘root‘ -nv

举例:
grep 结合正则表达式的例子:

2 过滤出所有带数字的行
grep ‘[0-9]‘ test.txt -n

3 过滤出以#好开头的行
grep ‘^#‘ test.txt -n

重新编辑test.txt.

4 过滤出非纯数字的行
grep ‘[^0-9]‘ test.txt
符号^放进[]里面表示非的意思,放在[]外面表示以某个字符开头例如:

5 过滤出非数字开头的行
grep ‘^[^0-9]‘ test.txt

7 对上命令取反过滤出以数字开头的行
grep -v ‘^[^0-9]‘ test.txt

该命令相当于 grep ‘^[0-9]‘ test.txt
重新编辑test.txt

8 . 点 字符 匹配任意一个字符
grep ‘r.t‘ test.txt

9 * 匹配之前的项0次或多次
grep ‘r\*t‘ test.txt

10 .* 组合起来,就是匹配所有字符

以下列举的正则符号均不能直接用grep,需要加-E选项,或者给符号加转义字符,为了方便我们直接使用egrep
11 {n} 匹配之前的项n次,
{n,} 匹配之前的项n次及其以上
{n,m} 指定之前的项所需匹配的最小次数和最大次数
egrep ‘r{2}t‘ test.txt
egrep ‘r{2,}t‘ test.txt
egrep ‘r{1,2}t‘ test.txt

12 + 匹配之前的项1次或多次,*是从0次开始,+是从1次开始
egrep ‘r+t‘ test.txt

13 ? 匹配之前的项0次或1次
egrep ‘r?t‘ test.txt

14 | 匹配|两边的任意一项
egrep ‘root|rt’ test.txt

或者 egrep ‘r(t|o)‘ test.txt

以上()创建了一个用于匹配的字符串

原文地址:http://blog.51cto.com/12606610/2082834

时间: 2024-10-10 16:41:32

Linux 学习总结(十九)正则三剑客之grep的相关文章

Linux学习笔记<十九>——系统裁剪之一

grub-->kernel-->initrd-->ROOTFS(/sbin/init, /bin/bash) 自行在一块新硬盘上组建一个简单的Linux系统,具有/sbin/init初始化,能够使用/bin/bash 1.磁盘分区:只创建boot分区mount到/mnt/boot和根分区mount到/mnt/sysroot 2.cp /boot/vmlinuz-`uname -r` /mnt/boot/vmlinuz 3.grub-install --root-directory=/mn

Linux学习(十九)软件安装与卸载(二)更换yum源

一.简介 系统自带的源数量有限,而且是国外的源,速度肯定不如国内的.而断网的时候,本地源就可以派得上用处.而RPMForge源是传说中规模最大的一个源.那么接下来我们就来分别配一下本地源,国内源,RPMForge源. 此外还可以安装一个扩展源.下面我们也会讲到. 二.本地源的配置 方法: (图1) 实验: vim Centos-DVD.repo [dvd] name= install dvd baseurl=file:///mnt enable=1 gpcheck=0 然后清楚缓存看看: [[e

linux学习第十周总结

linux学习第十周总结 接着上周的mysql,重点终结日志管理 ,备份还原,主从复制和mysql集群 一.mysql日志管理 事务日志 transaction log 错误日志 error log 通用日志 general log 慢查询日志 slow query log 二进制日志 binary log 中继日志 reley log 1.事务日志 事务型存储引擎自行管理和使用,建议和数据文件分开存放 redo log undo log Innodb事务日志相关配置: show variabl

攻城狮在路上(叁)Linux(二十九)--- 完整备份工具:dump以及restore

一.dump命令: 该命令既可以针对整个文件系统进行备份,也可以仅针对目录来备份.还可以指定不同的备份等级(-0~-9共10个等级). dump -W:列出在/etc/fstab中具有dump设置的分区是否备份过. 命令格式: dump [-Suvj] [-level] [-f 备份文件] 待备份数据 参数说明: -S:仅列出后面的待备份数据所需要的磁盘空间大小. -u:将这次dump的时间记录到/etc/dumpdates文件中. -v:将dump的文件过程显示出来. -j:加入bzip2的支

linux杂谈(十九):DNS服务器的配置(二)

1.本机和外网的解析 ? ?之前讨论了DNS的正向解析和反向解析,但有的时候我们想让DNS服务器对于服务器本机的解析和对于外网的解析是不同的.那就需要在主配置文件中对本机和外网进行不同的配置: ? ? ? ? ? ?这个是主配置文件中对于本服务器的访问,并且副配置文件为example.com.zone:(注意要注释的内容). ? ? ? ?这个是对于非本机的配置,并且副配置文件为example.com.inter. ? ?为了统一期间,把之前的副配置文件的策略注释掉. ? ? ? ? ?然后我们

linux杂谈(十九):DNSserver的配置(二)

1.本机和外网的解析 ? ?之前讨论了DNS的正向解析和反向解析,但有的时候我们想让DNSserver对于server本机的解析和对于外网的解析是不同的.那就须要在主配置文件里对本机和外网进行不同的配置: ? ? ? ? ? ?这个是主配置文件里对于本server的訪问,而且副配置文件为example.com.zone:(注意要凝视的内容). ? ? ? ?这个是对于非本机的配置,而且副配置文件为example.com.inter. ? ?为了统一期间,把之前的副配置文件的策略凝视掉. ? ?

angular学习笔记(十九)

本篇主要介绍angular使用指令修改DOM: 使用angular指令可以自己扩展html语法,还可以做很多自定义的事情.在后面会专门讲解这一块的知识,这一篇只是起到了解入门的作用. 与控制器,过滤器,服务,一样,可以通过模块实例的directive的方法来创建指令: var someModule = angular.module('SomeModule',[]); someModule.directive('directiveName',function(){ return { link: f

C++语言学习(十九)——C++类型识别

C++语言学习(十九)--C++类型识别 一.C++类型识别简介 1.C++类型识别简介 C++是静态类型语言,其数据类型是在编译期就确定的,不能在运行时更改.C++语言中,静态类型是对象自身的类型,动态类型是指针(引用)所指向对象的实际类型.RTTI(Run-Time Type Information)即运行时类型识别,C++通过RTTI实现对多态的支持.为了支持RTTI,C++提供了一个type_info类和typeid与dynamic_cast两个关键字. 2.type_info结构体 t

Linux学习笔记<十>——vim编辑器

vi:Visual Interface vim:Visual Interface iMproved vim模式: 编辑模式(命令模式):默认打开vim后处于的模式 输入模式 末行模式 模式转换: 编辑-->输入: i: 在当前光标所在字符的前面,转为输入模式: a: 在当前光标所在字符的后面,转为输入模式: o: 在当前光标所在行的下方,新建一行,并转为输入模式: I:在当前光标所在行的行首,转换为输入模式 A:在当前光标所在行的行尾,转换为输入模式 O:在当前光标所在行的上方,新建一行,并转为

Linux学习第十二周总结

linux学习第十一周总结 http协议和APACHE 实现LAMP架构 日志管理 网络文件共享服务 一 .HTTP协议和apache 1.HTTP 简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议. HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等). HTTP是一个属于应用层的面向对象的协议,由于其简捷.