鸟哥的Linux私房菜——第十五章:正规表示法
视频链接
B站:http://www.bilibili.com/video/av10364761/
目录如下
1. 前言:
2. 基础正规表示法:
2.1 以 grep 撷取字符串 (grep -iv i是忽略大小写,v是反向选择显示没有搜寻字符串的 '搜寻字符串' filename)
2.2 重要特殊字符(characters) ([] ^ $ *)
3. 延伸正规表示法: (+ ? | () )
4. 格式化打印: printf ()
5. sed 工具简介 (sed '1a ..' a新增 d删除 c取代)
6. awk 工具简介 (awk NF每一行的字段总数 NR目前在第几行 FS目前分隔符,默认是空格)
7. 文件数据比对与打印的相关功能 ()
7.1 档案比对: diff, cmp, patch (diff 旧文件 新文件 cmp -s 旧文件 新文件 cmp默认输出第一个不同点,-s输出全部 patch要利用.patch差异文件,还要在就文件夹里面)
7.2 档案打印准备: pr ()
1.grep搜寻
1. [] 里面的字母不管有几个都指一个
2.grep 反向选择^ 注意!^必须在[]里面才是反向选择
3.行首^ 行尾$
4.*
延伸正规表示法
sed
下面的几个例子都是显示结果,文件本身的内容并没有改变
那么我们如果想改变文件的内容改怎么办呢?就是加一个-i就好了
//比如我要修改vae.c这个文件,在第2行下面添加vae,也就是第3行是vae sed -i '2a vae' vae.c //现在我又想把vae给删除了,注意是删第3行啊~ sed -i '3d' vae.c
awk
有没有发现第2 3两行是有问题的?因为2 3两行的数据有空格或者是Tab,所以在使用awk处理数据的时候要注意你的数据是不是有空格或者Tab
还要注意的是,$0指的是这一行,$1是第一列,$2是第二列...以此类推v
diff
就是比较两个文件之间的不同,常常与patch命令一起用
我改变一个文件
cmp 比较两个档案,以 位 为单位
patch 我们来讲解一个简单的用法
先把两个文件的不同写进一个文档 注意!diff 必须要加上 -Naur
pr