grep基本详细使用
过滤文件类容---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基本详细使用的更多相关文章
- Linux中find、grep命令详细用法
在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 find命令的一般形式 ...
- Linux find、grep命令详细用法
在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下:find命令 find命令的一般形式 ...
- grep命令详细解析 --非原创 原作者ggjucheng
简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...
- grep、egrep、fgrep的用法与特性详解
[转载自]http://tanxw.blog.51cto.com/4309543/1361993 开篇 学习Linux也有一段时间了,对Linux多少也算是有点了解了,越是了解也就越对这 ...
- 浅析Android设备中grep命令处理流程
2017-04-18 概述 在TV开发板中,可以在串口中直接使用grep命令.这是因为在/system/bin/下有一个'grep'链接.这个链接指向'/system/bin/toolbo ...
- 【Linux相识相知】文本处理工具之grep\egrep\fgrep及正则表达式
常说Linux上有文本处理的三剑客,grep.sed和awk,本文就grep做出详细的描述,并引出正则表达式. grep NAME:打印模式匹配的行 SYNOPISIS: grep [OPTIONS] ...
- linux通过grep根据关键字查找日志文件上下文
linux通过grep根据关键字查找日志文件上下文 1.在标准unix/linux下的grep命令中,通过以下参数控制上下文的显示: grep -C 10 keyword catalina.out 显 ...
- perl之grep函数的用法
转载至 perl中grep的详细用法 grep有2种表达方式: 1 grep BLOCK LIST 2 grep EXPR, LIST BLOCK表示一个code块,通常用{}表示:EXPR表示一个表 ...
- LAMP 之 mysql 安装
搞了成日 = = 呢个野.... 大部分东西写在 印象笔记 中....不过呢个野特别繁琐,所以记录落黎(小白一枚,大家见谅) 总结下,唔系好容易唔记得 >W< (可能唔会甘完整,我将我自认 ...
随机推荐
- input type属性为number时,去掉右边的上下箭头
加上样式: input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none; ...
- [LeetCode] 923. 3Sum With Multiplicity 三数之和的多种情况
Given an integer array A, and an integer target, return the number of tuples i, j, k such that i &l ...
- [LeetCode] 466. Count The Repetitions 计数重复个数
Define S = [s,n] as the string S which consists of n connected strings s. For example, ["abc&qu ...
- Loj #3085. 「GXOI / GZOI2019」特技飞行
Loj #3085. 「GXOI / GZOI2019」特技飞行 题目描述 公元 \(9012\) 年,Z 市的航空基地计划举行一场特技飞行表演.表演的场地可以看作一个二维平面直角坐标系,其中横坐标代 ...
- Maven介绍及环境搭建
Maven介绍及环境搭建 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建.报告和文档的软件项目管理工具. 下载Maven boot:类加载器框架,Maven使用它加在自 ...
- Linux内核定时器struct timer_list
1.前言 Linux内核中的定时器是一个很常用的功能,某些需要周期性处理的工作都需要用到定时器.在Linux内核中,使用定时器功能比较简单,需要提供定时器的超时时间和超时后需要执行的处理函数. 2.常 ...
- springmvc和mybatis面试题(含答案)
Spring MVC Framework有这样一些特点: 1.它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是java组件.并且和Spring提供的其他基础结构紧密集成. ...
- 探索FFmpeg
Part1 :FFmpeg简介 FFmpeg定义 FFmpeg是一款音视频编解码工具,为开发者提供了大量音视频处理接口. FF指的是"Fast Forward" FFmpeg历史 ...
- CentOS7部署vsftpd服务
1.查看是否已经安装了vsftpd vsftpd -version 2.安装vsftpd(CentOS7) yum install -y vsftpd 3.新建FTP目录 创建的FTP目录如下: /d ...
- java.lang.IllegalStateException: Received message from unsupported version: [5.2.2] minimal compatible version is: [5.6.0]
启动elasticsearch-6.2.2-Windows服务时报错: java.lang.IllegalStateException: Received message from unsupport ...

