正则表达式以及grep,cut等命令学习

Posted xy913741894

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式以及grep,cut等命令学习相关的知识,希望对你有一定的参考价值。

所谓正则表达式,简单来说就是一种处理(复杂)字符串的方法,它以行为单位,通过添加一些特殊符号来达到增删查改字符串的目的。


正则表达式可分为以下三个内容:

比如我们要匹配以123开头中间有3个x字符的字符串:

其中^表示开头,也就是位置限定符,.* 表示没有字符,任意一个字符或者任意 多个字符,其中.表示字符类,而 * 表示数量限定符。下面我们来详细讲一讲这三者。

关于标准正则和扩展正则表达式的区别:

其实它们有点类似,只不过扩展正则新填加了一些功能:比如上面所提的? + | 等,举例说明:

可以看出,对于标准grep,a+中+只看做是普通的+字符匹配,而扩展正则表达式则认为a+是至少一个a,那么如何在扩展正则匹配+,加个转义即可。

grep ‘a\\+’ file

再比如:显示除了空格开头,#开头的所有行,可以像下图红色圈出来的写,第二个就是利用扩展正则的 | 的含义

具体扩展正则表达式新加了如下规则:



cut命令:以行为单位,将每一行内的数据进行分解,有时候我们会以某些字符作为切割参数,也可以完成切割功能,不过cut来处理多空格相连的数据时可能会吃力一点。

cut -c 字符范围
cut -d ‘分割字符’ -f fields

实例:


grep命令:也是以行为单位,使用grep命令分析某行信息,如果有我们所需要的信息就将该行拿出来显示

grep [选项] filename
-c 计算“查找的字符串次数”
-n 顺便输出行号
-v 反向选择,显示没有“查找字符串”的那一行
-i 忽略大小写

实例:

测试文件如下:

“Open Source” is a good mechanism to develop programs.
apple is my favorite food.
Football game is not use feet only.
this dress doesn’t fit me.
However, this dress is about $ 3183 dollars.
GNU is free air not free beer.
Her hair is very beauty.
I can’t finish the test.
Oh! The soup taste good.
motorcycle is cheap than car.
This window is clear.
the symbol ‘*’ is represented as start.
Oh! My god!
The gd software is a library for drafting programs.
You are the best is mean you are the no. 1.
The world is the same with “glad”.
I like dog.
google is the best tools for search keyword.
goooooogle yes!
go! go! Let’s go.
I am VBird


sort命令:对不同类型排序
-f 将字母都转换为大写字母,忽略大小写
-u 相当于uniq命令
-r 反向排序
-n 按照数字排序
-o 写入源文件

实例:

对于file文本,依次是水果种类:数目:单价,我们要根据单价,或者数目升序排列


tr命令:替换删除字符串
-d 删除
-s 替换重复字符串

实例:

以上是关于正则表达式以及grep,cut等命令学习的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本------正则表达式与常用命令(sort,uniq,tr,cut)

grepegrep以及正则表达式的使用

awk在正则表达式中的使用

Linux:第四次练习题--正则表达式

Linxu学习008grep和正则表达式

马哥2016全新Linux+Python高端运维班-Linux grep正则表达式练习,及find命令