正则表达式和文件格式化处理学习笔记
1.什么是正则表达式?
简单的说:正则表达式就是一个处理字符串的方法,它是以行为单位来进行字符串的处理操作,正则表达式通过一些特殊符号的辅助,来完成查找、删除、替换,某特定字符串的处理过程
2.正则表达中的特殊符号:
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的补丁源文件)