【CentOS】正则表达式
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】正则表达式的更多相关文章
- Centos常用命令之:正则表达式
我们知道,正则表达式可以大大的提高我们的工作效率. 在了解正则表达式之前,我们需要了解,通配符的概念. 在linux中,我们在使用ls这个命令的时候经常会使用下面这种用法 [fuwh@localhos ...
- CentOS之正则表达式
支持linux正则表达式的工具有:grep:实现查找,sed,awk:都是流式编辑器,可以实现查找和替换,并且把替换的文本输出到屏幕上. grep工具 grep [-cinvABC] 'word' - ...
- 从零开始学 Java - CentOS 下安装 Nginx
早上下起了暴雨 闹钟还未响起就听到雨滴哗啦啦击打窗户的声音,被吵醒了.起床上班,在楼下的十字路口,暴雨大到完全看不清对面,两个穿着雨衣的交警站在路口中间指挥着过往的车辆,大家都慌慌张张.急急忙忙的打着 ...
- CentOS下搭建LAMP环境详解
前言:在这里将介绍如何在CentOS下搭建LAMP环境(全部使用源码编译安装),用于web服务器开发. •LAMP: Linux + Apache + PHP + Mysql. •系统: CentOS ...
- centos 7.0 nginx 1.7.9 安装过程
系统用的是centos 7.0最小化安装 我现在安装完了 写一下步骤 还没完全搞懂 首先安装GCC [root@localhost ~]# yum install -y gcc gcc-c++ 已加载 ...
- 一些常用到的Centos命令
CentOS常用命令在我们的使用中,经常被使用.所以,我们对一些经常使用又很重要的CentOS常用命令进行了全面的整理.下面,就来介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu ...
- CentOS(RHEL) 操作备忘
1.安装中文语言包及切换 yum groupinstall chinese-support vi /etc/sysconfig/i18n change en_US to zh_CN 2.用户自动登录 ...
- Linux添加快捷启动方式 (Ubuntu Debian CentOS)
ubuntu桌面快捷方式的创建 debian添加快捷启动方式 centos 6 桌面建立应用程序的快捷方式的方法 今天用着用着ubuntu,突然抽搐了,感觉特别别扭,特别不方便.新装的应用程序不好 ...
- 在CentOS上编译安装PostgreSQL
http://my.oschina.net/tashi/blog 第一步:准备阶段 获取必需软件包: CentOS中查看是否安装了某个软件的命令:rpm -qa | grep 软件名.which命令可 ...
随机推荐
- AI贪吃蛇(二)
前言 之前写过一篇关于贪吃蛇AI的博客,当时虽然取得了一些成果,但是也存在许多问题,所以最近又花了三天时间重新思考了一下.以下是之前博客存在的一些问题: 策略不对,只要存在找不到尾巴的情况就可能失败, ...
- C#基础知识简单梳理
本文是转发博友的总结,方便自己以后随时温习: 1.值类型和引用类型 1.1堆和栈 简单的说值类型存放在堆栈上面,引用类型的数据存放在托管堆上面(它的引用地址却存放在堆栈上面)! 栈:它是一个内存数组, ...
- php基础之gd图像生成、缩放、logo水印和简单验证码实现
gd库是php最常用的图片处理库之一(另外一个是imagemagick),可以生成图片.验证码.水印.缩略图等等.要使用gd库首先需要开启gd库扩展,windows系统下需要在php.ini中将ext ...
- 深入理解javascript原型和闭包(5)——instanceof
又介绍一个老朋友——instanceof. 对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/ ...
- [NHibernate]N+1 Select查询问题分析
目录 写在前面 文档与系列文章 N+1 Select查询问题分析 总结 写在前面 在前面的文章(延迟加载,立即加载)中都提到了N+1 Select的问题,总觉得理解的很不到位,也请大家原谅,这也是为什 ...
- 脑筋急转弯——Google 面试
1. 村子里有100对夫妻,其中每个丈夫都瞒着自己的妻子偷情...村里的每个妻子都能立即发现除自己丈夫之外的其他男人是否偷情,唯独不知道她自己的丈夫到底有没有偷情.村里的规矩不容忍通奸.任何一个妻子, ...
- oracle中时间处理
--查看当前日期.时间SQL> select sysdate from dual; SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') ...
- 1 web.xml配置详解
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...
- 第3月第9天 循环引用 block
一.一个对象没有被引用,那么在函数块完成时就会被dealloc,这种情况因为对象销毁了,block块也永远不会执行. MyNetworkOperation *op = [[MyNetworkOpera ...
- js前端实现模糊查询
对于模糊查询,一般都是传关键字给后端,由后端来做.但是有时候一些轻量级的列表前端来做可以减少ajax请求,在一定程度上提高用户体验.废话不多说,直接上代码. //字符串方法indexOfvar len ...