跟鸟哥学Linux之——正则表达式和文件格式处理
思维导图:
对于正则表达式和文件格式化处理做了如下导图,对其做一个整体的概况,下边依次对其进行说明。
正则表达式
百科解释:
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
目的:
1.给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
2.可以通过正则表达式,从字符串中获取我们想要的特定部分。
3.可以迅速地用极简单的方式达到字符串的复杂控制。
命令:
我将正则表达式的命令分为基础和扩展两部分。
基础:
基础有查找(grep)和修改(set)两项;对于grep查找中有:1、. 表示一个任意字符。2、^与&分别表示行首和行尾。3、/<与/>分别表示匹配词的开头和结束。4、*表示重复零个到无穷个的前一个字符(注意和通配符之间的区别)。5、[list] 表示查找想要选取的字符,list列出字符串包含的可能字符集合。其中还可以扩展出:[n1-n2]和[^list],对于[n1-n2]其中-表示一个范围,从n1到n2,对于[^list] 表示意思同[list]相反。6、字符串规则:字符串规则有 xz\{n\}y、xz\{n,m\}y和xz\{n,\}y等,分别表示:x和y之间有n个z的字符、x和y之间有n到m个z的字符、x和y之间有n到无穷个z的字符。对于set修改中有:1、用d字符用来表示删除功能,例如:set ‘1,2d’ hosts,将 hosts 1,2行的文件删除。2、用s字符用来表示替换功能,例如:set ‘s/root/ROOT/g’ xx,表示将xx中的所有root替换为ROOT,s表示替换。
扩展:
对于扩展正则表达式有:1、+表示重复一个或一个以上的RE字符。2、?表示零个或一个的前一个RE字符。3、| 表示用或的方式找字符串。4、()表示括号中写出要查找字符串的重复内容,分为或关系的几组字符来查找字符串。5、()+ 表示多组字符组。
文件处理
目的:
用来将文件做简单的编排,也可以将自己需要的信息进行排版操作。
文件处理中我从三部分来说,分别为:1、printf、awk和文件比较。
Printf:
可以将自己的数据进行格式化输出。它可以加相关的参数,对于参数的意义可以查找manpage或help文件来学习和运用。
Awk:
1、基本用法:awk -F 分隔符‘条件{操作}’文件,用来对文件做相应的操作。2、加行号:在{}内的print操作后加NR。3、加字段数:在{}内最后加上NF。4、输出的格式处理:用OFS指明字段间分割符,用ORS指明行之间分割符。
文件比较:
1、diff:比较文件或目录的大小或其他方面的区别。2、同样用于文件比较,于diff不同之处在于它利用字节单位比较。3、patch:通过文件比较,主要用于升级和打补丁等用途。只会处理相异的部分。
总述:
这是我学完正则表达式和文件的格式化和处理后的一个小总结,关于正则表达式要注意和通配符进行区分,它们是完全不同的两项内容,也很容易混淆,再有关于正则表达式的知识还有很多,这只是一个初步的认识,在以后的学习中还需要不断更新。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。