当前位置: 首页 > 编程日记 > 正文

linux下字符串处理工具一:grep

grep常见选项

grep -A :显示匹配行和之后的几行
grep -A 4 "NullPointerException" test.log  找到NullPointerException之后的几行

-c :打印匹配到的行数 c:count
[admin@v069164233.sqa.<pre name="code" class="html">grep -A :显示匹配行和之后的几行
例子:grep -A 4 "NullPointerException" test.log  找到<span style="font-family: Arial, Helvetica, sans-serif;">NullPointerException后再向后打印几行</span>

zmf ~/poststation/logs]$ grep -c 入参 card.log49
-n:仔每行显示行号
[admin@v069164233.sqa.zmf ~/poststation/logs]$ grep -n 入参 card.log</span>
1:[2015-10-30 09:54:16] [http-bio-7001-exec-1] ERROR card url入参:t=20151027171220&fillnum=0¶m=K8RH4QDnVn/5w5jpXSzZru4POFk+9Fes/7Qs27LruDRve+IkTLOeKJ1HMSsaUp63/MsWa4hjUVmLY77QOGuTCo0QkZgeDK5ZpIFuUlEDwMU=
7:[2015-10-30 09:54:32] [http-bio-7001-exec-2] ERROR card url入参:t=20151027171220&fillnum=0¶m=K8RH4QDnVn/5w5jpXSzZru4POFk+9Fes/7Qs27LruDRve+IkTLOeKJ1HMSsaUp63/MsWa4hjUVmLY77QOGuTCo0QkZgeDK5ZpIFuUlEDwMU=
13:[2015-10-30 09:54:36] [http-bio-7001-exec-3] ERROR card url入参:t=20151027171220&fillnum=0¶m=K8RH4QDnVn/5w5jpXSzZru4POFk+9Fes/7Qs27LruDRve+IkTLOeKJ1HMSsaUp63/MsWa4hjUVmLY77QOGuTCo0QkZgeDK5ZpIFuUlEDwMU=
19:[2015-10-30 09:56:26] [http-bio-7001-exec-4] ERROR card url入参:t=20151027171220&fillnum=0¶m=K8RH4QDnVn/5w5jpXSzZru4POFk+9Fes/7Qs27LruDRve+IkTLOeKJ1HMSsaUp63/MsWa4hjUVmLY77QOGuTCo0QkZgeDK5ZpIFuUlEDwMU=
25:[2015-10-30 10:03:02] [http-bio-7001-exec-5] ERROR card url入参:t=20151027171220&fillnum=0¶m=K8RH4QDnVn/5w5jpXSzZru4POFk+9Fes/7Qs27LruDRve+IkTLOeKJ1HMSsaUp63/MsWa4hjUVmLY77QOGuTCo0QkZgeDK5ZpIFuUlEDwMU=
31:[2015-10-30 10:03:04] [http-bio-7001-exec-6] ERROR card url入参:t=20151027171220&fillnum=0¶m=K8RH4QDnVn/5w5jpXSzZru4POFk+9Fes/7Qs27LruDRve+IkTLOeKJ1HMSsaUp63/MsWa4hjUVmLY77QOGuTCo0QkZgeDK5ZpIFuUlEDwMU=
-v:逆向输出,打印不匹配的行数  reverse
[admin@v069164233.sqa.zmf ~/poststation/logs]$ grep -n -v 入参 card.log
2:
3:[2015-10-30 09:54:16] [http-bio-7001-exec-1] ERROR card base64Url:K8RH4QDnVn/5w5jpXSzZru4POFk+9Fes/7Qs27LruDRve+IkTLOeKJ1HMSsaUp63/MsWa4hjUVmLY77QOGuTCo0QkZgeDK5ZpIFuUlEDwMU=
4:
5:[2015-10-30 09:54:16] [http-bio-7001-exec-1] ERROR card {cardId=1111111, school=tb, studentId=12323244, name=enyilr, stationId=232323280646}
6:
8:
-i:在匹配文本时忽略大小写  ignore
[admin@v069164233.sqa.zmf ~/poststation/logs]$ grep -i UrL入参 card.log
[2015-10-30 09:54:16] [http-bio-7001-exec-1] ERROR card url入参:t=20151027171220&fillnum=0¶m=K8RH4QDnVn/5w5jpXSzZru4POFk+9Fes/7Qs27LruDRve+IkTLOeKJ1HMSsaUp63/MsWa4hjUVmLY77QOGuTCo0QkZgeDK5ZpIFuUlEDwMU=
[2015-10-30 09:54:32] [http-bio-7001-exec-2] ERROR card url入参:t=20151027171220&fillnum=0¶m=K8RH4QDnVn/5w5jpXSzZru4POFk+9Fes/7Qs27LruDRve+IkTLOeKJ1HMSsaUp63/MsWa4hjUVmLY77QOGuTCo0QkZgeDK5ZpIFuUlEDwMU=
[2015-10-30 09:54:36] [http-bio-7001-exec-3] ERROR card url入参:t=20151027171220&fillnum=0¶m=K8RH4QDnVn/5w5jpXSzZru4POFk+9Fes/7Qs27LruDRve+IkTLOeKJ1HMSsaUp63/MsWa4hjUVmLY77QOGuTCo0QkZgeDK5ZpIFuUlEDwMU=
[2015-10-30 09:56:26] [http-bio-7001-exec-4] ERROR card url入参:t=20151027171220&fillnum=0¶m=K8RH4QDnVn/5w5jpXSzZru4POFk+9Fes/7Qs27LruDRve+IkTLOeKJ1HMSsaUp63/MsWa4hjUVmLY77QOGuTCo0QkZgeDK5ZpIFuUlEDwMU=

grep正则表达式

正则表达式元字符集(基本集)

^ 锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$ 锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
. 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
* 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。
[] 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
\(..\) 标记匹配字符,如'\(love\)',love被标记为1。
\< 锚定单词的开始,如:'\ \> 锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\} 重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。
x\{m,\} 重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
x\{m,n\} 重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
\w 匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
\W \w的反置形式,匹配一个或多个非单词字符,如点号句号等。
\b 单词锁定符,如: '\bgrep\b'只匹配grep。

实例


grep '[a-z]\{5\}' aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
grep 'test' d*
显示所有以d开头的文件中包含test的行。
grep 'test' aa bb cc
显示在aa,bb,cc文件中匹配test的行。

注意

grep后面加双引号,单引号和不加引号是有区别的
详见:http://blog.csdn.net/cupidove/article/details/8783968

相关文章:

Matlab与随机变量和样本的数字特征

本文主要介绍了常见分布的期望和方差以及样本的数字特征。贡献人为孔令才。

C#的方法的参数修饰符详解

方法参数修饰 (啥也没有) 如果参数的修饰是啥也没有&#xff0c;那么其参数传递的方式是值传递&#xff0c;接受方收到的是原始数据的拷贝 out 说明了参数是引用传递。 params 可变参&#xff0c;注意了这种修饰符针对的参数一定是最后一个参数 ref 引用传递&#xff0c;参数的…

wps 2016 个人版 重新开始编号

wps文档重新开始编号&#xff0c;继续编号&#xff0c;自定义编号 首先选中这一行鼠标右键选中项目符号和编号单击项目符号和编号&#xff0c;你可以重新开始编号为1&#xff0c;继续前一列表&#xff0c;还可自定义&#xff0c;单击确定按钮就可以实现你想要的结果效果图转载于…

Sublime Text保存文件时自动去掉行末空格

1.安装DeleteBlankLines 插件 通过ctrlshiftp组合键打开命令面板 输入install packge后回车 输入DeleteBlankLines后回车进行安装 Sublime Tex去除空白行插件DeleteBlankLines 上文所述安装DeleteBlankLines插件的前提&#xff1a;Package Control已经安装好。 3.Subl…

六步使用ICallbackEventHandler实现无刷新回调

AJAX技术所提倡的无刷新回调&#xff0c;在原来的技术中需要写大量的JavaScript代码或使用一些AJAX框架&#xff0c;使得开发效率和可维护性大大降低。其实ASP.NET2.0中&#xff0c;已经提供了这样的接口&#xff0c;这就是ICallbackEventHandler。关于ICallbackEventHandler网…

Matlab与线性代数 -- 矩阵的特征值与特征向量

本图文详细介绍了Matlab中求方阵特征值与特征向量的方法。

mybatis3进行模糊查询的总结

一种直接采用函数进行模糊查询&#xff0c;直接在映射文件中书写对应的like语句。 例如&#xff1a; select * from u_tree ut where ut.node_name like concat(concat(‘%,#{text}),’%&#xff09; 第二种方式&#xff1a; 使用 ${...} 代替 #{...} SELECT * FROM tableName …

linux下字符串处理工具二:awk(1)

awk工作原理 原理图 第一步&#xff1a;awk对文件或管道的内容一次只处理一次&#xff0c;将获取到的这一行赋给内部变量$0。 第二步&#xff1a;这一行的内容按awk内部变量FS定义的分隔符&#xff0c;缺省为空格(包括tab制表符)分解成字段&#xff0c;每一段存储在从$1开…

后台接口向数据库录入汉字时乱码以及自动过滤文字经验总结

本人第一次写博客&#xff0c;而且是一个菜鸟&#xff0c;如果有什么不完善的地方请前辈们多多指教。 2017-06-01 21:56:05 因为公司功能的需求&#xff0c;需要写一个溯源信息的接口&#xff0c;下面的代码是前台的一个用户评论的界面。所谓溯源就是追溯源头&#xff0c;有点类…

PHP新手上路(六)

5.5 计数器 让我们在首页上加上一个计数器。这个例子已经被讲过多次了&#xff0c;但是还是有利于演示怎样读写文件以及创建自己的函数。counter.inc包含以下代码&#xff1a; <? /* || 一个简单的计数器 */ function get_hitcount($counter_file) { /…

如何教计算机认识手写数字(下)

本文详细介绍了如何利用C#语言编写KDTree结构加速KNN算法来处理手写字符的识别问题。本文由安晟提供。

linux下字符串处理工具二:awk( 二),awk脚本

awk脚本 awk脚本是一个可执行的文件&#xff0c;常习惯以.awk命名。 结构&#xff1a; $test.awk #!/bin/awk -f #脚本系统中awk的位置BEGIN{} #脚本主体之前&#xff0c;执行些什么。该行内的语句&#xff0c;可以只执行一次{} #脚本主体,此中的语句&am…

JavaScript正则表达式test的用法

<script LANGUAGE"javascript">function checkStr( s)...{var regu /abc/gi;var re new RegExp(regu);return re.test(s);}checkMobile(vabceeabc);</script>用途&#xff1a;检查输入的字符串是否含有abc,如果有返回true,否则返回false方法test(string…

如何利用C#开发“通讯录”小程序

本文介绍了数理系15级魏道鑫同学汇报的成果&#xff0c;利用C#开发的通讯录小程序。

Ubuntu 16.04 install NVDIA display driver

2019独角兽企业重金招聘Python工程师标准>>> 1. search and download the driver http://www.nvidia.cn/Download/ 2. vim /etc/modprobe.d/blacklist.conf append this lines to the file blacklist vga16fb blacklist nouveau blacklist rivafb blacklist rivatv …

C#Hello World

自己是做java开发的&#xff0c;但是有时候有些问题用java解决起来很不方便&#xff0c;比如调用windows系统的东西&#xff0c;所以要快速自学一下C#&#xff0c;快速解决一个问题。 下面是一个简单的控制台程序。 using System; //using 关键字的作用是导入命名空间 using Sy…

如何利用离散Hopfield神经网络进行高校科研能力评价(1)

如何利用离散Hopfield神经网络进行高校科研能力评价(1)代码部分

OpenDNS 不再向用户展示广告

OpenDNS是流行的免费域名解析服务提供商&#xff0c;它的收入一度主要来自广告&#xff0c;当用户输入的网址无法解析它会将用户重定向到广告页。在OpenDNS诞生前&#xff0c;ISP提供的域名解析是用户唯一的选择。但ISP的DNS服务称不上有多好&#xff0c;不怎么可靠。但如今&am…

winform配置文件的简单使用(转载)

1&#xff0e; 首先创建一个winform解决方案2&#xff0e; 与添加类文件相同的方法添加配置文件&#xff0c;比如&#xff1a;右击解决方案下的项目名称—>添加—>新建项—>选择 “应用程序配置文件”&#xff0c;.net默认文件名为app.config&#xff0c;点击确定 打开…

C#版及nodejs版的com端口监听程序

感受: 写监听程序的感受&#xff1a;原来有些事情并不是想象的那么难&#xff0c;难和简单就只在一个点上&#xff0c;一个点突破了&#xff0c;后面就豁然开朗了。所以有些问题&#xff0c;不能死闷&#xff0c;要先思考&#xff0c;然后查资料&#xff0c;然后问有经验的人…

C++各大有名库的介绍之C++标准库

C各大有名库的介绍之C标准库标准库中提供了C程序的基本设施。虽然C标准库随着C标准折腾了许多年&#xff0c;直到标准的出台才正式定型&#xff0c;但是在标准库的实现上却很令人欣慰得看到多种实现&#xff0c;并且已被实践证明为有工业级别强度的佳作。1、Dinkumware C Libra…

自己动手——实现 Dustjs 中间件

Dustjs是我个人比较喜欢的一个JS模版引擎&#xff0c;原因有两个&#xff0c;一是&#xff0c;同时支持客户端和服务端渲染&#xff0c;模版编译成JS后使用&#xff0c;性能好&#xff1b;二是&#xff0c;有大公司的支持&#xff0c;Linkedin有专门的Dustjs版本&#xff08;本…

如何利用离散Hopfield神经网络进行高校科研能力评价(2)

如何利用离散Hopfield神经网络进行高校科研能力评价&#xff0c;应用部分

yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss

做项目&#xff0c;需要24小时制式的时间&#xff0c;误用了yyyy-MM-dd hh:mm:ss&#xff0c;导致出现一个很难发现的bug&#xff0c;现记录下,方便以后查阅。 yyyy-MM-dd hh:mm:ss 12小时制 yyyy-MM-dd HH:mm:ss 24小时制

Asp.Net开发架构设计(二)

上回说到&#xff0c;我们配置了一下UnityConfig层&#xff0c;在这个层中定义了一个IContainerAccessor的接口和一个返回IUnityContainer类型的方法&#xff0c;这个方法的主要作用就是把Service层中的接口类和Business层中的接口实现类装配到UnityContainer中并返回&#xff…

Matlab与线性代数 -- 稀疏矩阵的创建

本文详细介绍了在Matlab中创建稀疏矩阵的三种方法。

uva 10491 Cows and Cars

https://vjudge.net/problem/UVA-10491 题意&#xff1a; a头牛&#xff0c;b辆车&#xff0c;每扇门后面都有一头牛或一辆车 开始选手选择一扇门 然后主持人打开c扇有牛的门&#xff08;选中的除外&#xff09; 然后选手换一扇门 问最后选手选的门后面是车的概率 开始选牛的概…

ssh免密码登录的原理

工作第一天&#xff0c;就需要登录各种服务器&#xff0c;免密码登录无疑能大大的提高工作效率。以前只知道配置&#xff0c;今天了解了下原理。 免密码登录原理 图解&#xff0c;server A免登录到server B: 1.在A上生成公钥私钥。 2.将公钥拷贝给server B&#xff0c;要重命…

mysql-cluster 安装配置

mysql-cluster免编译包下载&#xff1a;https://dev.mysql.com/downloads/file/?id469881 新版本支持只把索引和用到的数据加载到内存&#xff0c;而不是老版本的整个数据库都得加到内存中wget https://cdn.mysql.com//Downloads/MySQL-Cluster-7.5/mysql-cluster-gpl-7.5.6-l…

ExtJs学习笔记(5)_Ajax示例

ExtJs对于Ajax的使用非常简单&#xff0c;看下面的代码: 1.Html页&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.o…