1.grep  [-cinvABC]  'word'  filename

-c :打印符合要求的行数

--color:显示颜色

-i :忽略大小写(ignore)

-n :在输出符合要求的行的同时连同行号一起输出(number)

-v :打印不符合要求的行(取反)

-A :后跟一个数字(有无空格都可以),例如 –A2则表示打印符合要求的行以及下面两行(after)

-B :后跟一个数字,例如 –B2 则表示打印符合要求的行以及上面两行(before)

-C :后跟一个数字,例如 –C2 则表示打印符合要求的行以及上下各两行

-E  :允许使用拓展正则表达式(extended regular  expression)

-r  :遍历

注意:"." 表示任意一个字符                       eg: grep -E 'ro.t' 1.txt= egrep 'ro.t' 1.txt,可以过滤出root

".*"表示零个或多个任意字符,           eg: grep -E 'ro.*t' 1.txt= egrep 'ro.*t' 1.txt,可以过滤出rot,rosadat,roo...t 

"?"表示零个或一个跟在他前面的字符, eg: grep -E 'ro?t' 1.txt = egrep 'ro?t' 1.txt ,"o?"可以过滤出rt,rot        (这时你想到.*是什么意思了吗,手动滑稽)

"+"表示一个或多个根子他前面的字符, eg: grep -E 'ro+t' 1.txt = egrep 'ro+t' 1.txt ,"o+"可以过滤rot,root,rooo...t

也可以这样用:...(oo+) 1.txt  ;         ...(oo){1,2} 1.txt,{}内为数字,表示重复次数

[^a]:[]括号内的^表示除了..也就是取反、非的意思

2.sed      (查找替换)

查找:

sed -n 'np' 1.txt    列出第几行

-n  :取消默认输出

np  :n为第几行,列出多行可以'1,10p',表示为列出1-10行,'5-$'列出第五行到行尾

sed -n '/root/p' 1.txt   列出包含root的行

多行为

sed -n -e '/root/p'  -e 'np'  1.txt

-e  :实现多个行为

删除

sed '1,5d'  删除1-5行

替换

sed 's///g'  替换(这个类似vim), eg: sed -r '5,$s#([^:]+)(:.*+:)([^:]+$)#\3\2\1#' 1.txt,表示为替换第五行到最后一行每一行的首尾单词

-r  :允许使用拓展正则表达式(extended regular  expression)

注意:由于\符号在涉及到路径时,很容易混淆,因此可以用#,@来替代

3.awk

截取:

awk -F':' '{print $1,$2}' 1.txt

-F :指定分隔符,如果不使用则默认为空格和Tab制表符。注意!!-F后面的''一定要紧贴着的!!

print 为打印的动作,打印出某个字段,$1为第一个字段,$2为第二个,$0为整行

匹配字符或字符串:

匹配~:

awk -F':' '$1~/oo/' 1.txt ,表示为让$1段去匹配

awk -F':' '/root/ {print $1,$3} /test/ {print $1,$3}' 1.txt,表示为多次匹配,匹配完root后再匹配test(还不怎么熟悉的)

条件运算符:

可以使用>,<,>=,<=,==,!=,&&,||

awk -F':' '$3=="0"' 1.txt ,表示为打印出第三个字段为"0"字符的行,若果是'$3==0',才是数字,否则会像sort的排序原理一样

awk -F':' '$3!="/bin/bash"' 1.txt,表示为打印出第三个字段不为/bin/bash的行。

awk -F':' '$3<$4' && '$3<=7' 1.txt,表示为打印出第三个字段小于第四个字段并且第三个字段小于7的行

内置变量:

awk常用的变量有:

NF:用分隔符分隔后一共有多少段

NR:行数

因此,$NF为最后一段的值,NR为行号,NF、NR可作为判断的条件,如:'$NF>=10' ,最后一段的值大于等于10

总和???????不懂,日后补充吧

【CentOS】正则表达式的更多相关文章

  1. Centos常用命令之:正则表达式

    我们知道,正则表达式可以大大的提高我们的工作效率. 在了解正则表达式之前,我们需要了解,通配符的概念. 在linux中,我们在使用ls这个命令的时候经常会使用下面这种用法 [fuwh@localhos ...

  2. CentOS之正则表达式

    支持linux正则表达式的工具有:grep:实现查找,sed,awk:都是流式编辑器,可以实现查找和替换,并且把替换的文本输出到屏幕上. grep工具 grep [-cinvABC] 'word' - ...

  3. 从零开始学 Java - CentOS 下安装 Nginx

    早上下起了暴雨 闹钟还未响起就听到雨滴哗啦啦击打窗户的声音,被吵醒了.起床上班,在楼下的十字路口,暴雨大到完全看不清对面,两个穿着雨衣的交警站在路口中间指挥着过往的车辆,大家都慌慌张张.急急忙忙的打着 ...

  4. CentOS下搭建LAMP环境详解

    前言:在这里将介绍如何在CentOS下搭建LAMP环境(全部使用源码编译安装),用于web服务器开发. •LAMP: Linux + Apache + PHP + Mysql. •系统: CentOS ...

  5. centos 7.0 nginx 1.7.9 安装过程

    系统用的是centos 7.0最小化安装 我现在安装完了 写一下步骤 还没完全搞懂 首先安装GCC [root@localhost ~]# yum install -y gcc gcc-c++ 已加载 ...

  6. 一些常用到的Centos命令

    CentOS常用命令在我们的使用中,经常被使用.所以,我们对一些经常使用又很重要的CentOS常用命令进行了全面的整理.下面,就来介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu ...

  7. CentOS(RHEL) 操作备忘

    1.安装中文语言包及切换 yum groupinstall chinese-support vi /etc/sysconfig/i18n change en_US to zh_CN 2.用户自动登录 ...

  8. Linux添加快捷启动方式 (Ubuntu Debian CentOS)

    ubuntu桌面快捷方式的创建 debian添加快捷启动方式 centos 6 桌面建立应用程序的快捷方式的方法   今天用着用着ubuntu,突然抽搐了,感觉特别别扭,特别不方便.新装的应用程序不好 ...

  9. 在CentOS上编译安装PostgreSQL

    http://my.oschina.net/tashi/blog 第一步:准备阶段 获取必需软件包: CentOS中查看是否安装了某个软件的命令:rpm -qa | grep 软件名.which命令可 ...

随机推荐

  1. 求n!质因数分解之后素数a的个数

    n!质因数分解后P的个数=n/p+n/(p*p)+n/(p*p*p)+......直到n<p*p*p*...*p //主要代码,就这么点东西,数学真是厉害啊!幸亏我早早的就退了数学2333 do ...

  2. 3 HTML&JS等前端知识系列之javascript的基础

    preface 作为一名运维开发,必须懂得前端知识,比如javascript,dom等等,下面就聊聊javascript. include 数据格式 条件判断,循环流程等. 函数 面向对象 what ...

  3. Java核心思想

    回忆面向对象思想        面向对象,主页君也不敢对其多说什么,毕竟这是一个看似简单,但是其实蕴含很深层次理   论的东西,并不是看书就可以理解的,其实也是要在很多实际操作中学习,积累.     ...

  4. c语言求数组长度

    在定义数组的函数内 int arr[] = {12.12}; int length; length = ]; 在别的函数中作为引用数据类型引入时,以上方法失效: 解决方法1:再传一个int 类型的长度 ...

  5. MySql 杂记

    1:声明一个int变量时,设置它默认为0,而不是空或null. int 型,取值范围-2,147,483,648 到 2,147,483,647 ,默认值是 0 int是值类型,读内存区间中指定长度单 ...

  6. golang的ssh包

    git clone https://github.com/golang/crypto.git,复制到 golang.org/x/ 目录下. 常常用来建立ssh连接发送一条命令,但有时需要模拟ssh客户 ...

  7. VTK初学一,动画加AVI录制终于做出来了

      #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRe ...

  8. 使用JVMTI创建调试和监控代理

    Java 虚拟机工具接口(JVMTI)提供了一个编程接口,允许你(程序员)创建software agent 来监视和控制你的Java应用. JVMTI 代替了原来的Java Virtual Machi ...

  9. vijos1531 食物链

    背景 安徽省芜湖市第二十七中学测试题 NOI 2001 食物链(eat) Description:OfficialData:OfficialProgram:JackDavid127 描述 动物王国中有 ...

  10. hzwer模拟赛 Hzwer的陨石

    题目描述 Description 经过不懈的努力,Hzwer召唤了很多陨石.已知Hzwer的地图上共有n个区域,且一开始的时候第i个陨石掉在了第i个区域.有电力喷射背包的ndsf很自豪,他认为搬陨石很 ...