正则表达式和文件格式化处理学习笔记

1.什么是正则表达式?
简单的说:正则表达式就是一个处理字符串的方法,它是以行为单位来进行字符串的处理操作,正则表达式通过一些特殊符号的辅助,来完成查找、删除、替换,某特定字符串的处理过程

2.正则表达中的特殊符号:

hive 正则函数不取中文 hive正则表达式提取汉字_sed


3.正则表达式字符集合:

【^】:表示带查找的字符串在行首

【$】:表示带查找的字符串在行尾

【.】:表示【一定有一个任意字符】

【\】:表示转义符,将特殊的符号特殊的意义去除

【*】:表示零到无穷多个的前一个RE字符,【在bash环境中,表示0到无穷多个任意字符】

【[]】:表示字符集合的RE字符,里面列出想要选出的字符

【n1-n2】:表示字符集合的RE字符,列出想要选取的字符范围

【[^]】:表示字符集合的RE字符,列出不想要的字符范围

{n,m|}:表示连续n到m个的【前一个RE字符】

表示若为{n}则是连续n个的前一个RE字符

若是{n,}则是连续n个以上的前一个RE字符

4.关于sed工具

其主要意义为:sed本身是一个管道命令,可以进行标准输入,sed还能进行【查找、替换、新增、选取】等功能

关于sed的参数

-n:安静模式,加上-n参数,则只有sed特殊处理的哪一行才能显示

-e:直接在命令上进行sed操作编辑

-f:直接将sed操作写在一个文件内

-r:sed的操作使用的是扩展正则表达式

-i:直接修改读取的文件内容,而不是由屏幕输出

function的东西

a:新增,a后面接新增字符

c:替换,c后面可以接字符

d:删除,因为是删除,后面不接任何东西

i:插入

p:打印,可以某个选择的数据打印出来,p通常与参数sed -n一起使用

s:替换,可以直接替换,s这个操作可以搭配正则表达式一起使用

*******:sed ‘s/要被替换的字符/新的字符/g’
5.扩展正则表达式:egrep
可以使用grep -E ;个人建议直接使用egrep
RE字符

+ :表示重复【一个或是一个以上】的前一个RE字符

?:表示【零个或一个】的前一个RE字符

|:表示【用或or】的方式找出数个字符串

():表示找出【群组】字符串

()+:多个重复群组的判别

6.awk:数据处理工具,

awk和sed的区别

awk:是把一行中数据分成数个字段来处理

sed:作用于一整

7.文件对比工具

diff:对比两个文件之间的差异,并且是以行为单位来对比

cmp:同样是对比两个文件的差异,cmp主要是利用字节单位去对比

patch:可以将旧版本数据更新到新版本(主要是由diff建立patch的补丁源文件)