0520 第六节课
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0520 第六节课相关的知识,希望对你有一定的参考价值。
特殊权限的说明及用法直接并到上一节课的笔记的末尾
文本处理工具
1.cut:将数据以某分割符为界切成几段,并提取其中一段
-d: d后面直接跟分隔符
-f: f后面跟想要提取的段数,多段用,隔开
2.more/less:翻页显示
COMMAND |more/less -d :d是一些简单的帮助提示
3.head:显示头几行
-#: 显示前边#行
4.tail:显示末尾几行
-#:显示末尾#行
-f:监控末尾添加,一般是配合&后台使用
-n +k: 从第k行开始显示
5.paste:合并命令
-d:分隔符,两个文件合并在一起区分两个数据的分隔符
-s:一个数据一行
6.uniq:计数的命令
-c:统计出现的次数
-u:显示没有重复的行
-d:显示重复的行
7.diff:比较两文件的不同
-u:将比较的结构以特殊格式输出,重定向到文件后可以做补丁使用
8.patch:
-i:将file1以diff输出的格式变成file2
-r:将file2以diff输出的格式变成file1
-b:在做ir操作前备份保存一份原件
正则表达式和linux文本处理三剑客
文本处理三剑客: grep: 过滤文本
sed: 编辑文本
awk: 文本报告生成器
grep:过滤文本工具
grep:支持正则表达式
egrep:支持扩展表达式
fgrep:不支持正则表达式
三个之间可以通过选项转化 :grep -E =egrep
grep -F =fgrep
grep 【options】 pattern file
-i:区分大小写
-o:不显示行,只显示匹配到的数据
-v:显示匹配到的数据所在的行以外的内容
-q:静默模式,无论是否匹配到都不显示
-E:支持扩展正则表达式
-A #:after,匹配到的行的下#行也一并显示出来
-B #:before, 上#行
-C #:上下文, 上下#行
正则表达式:就是一些符号代指文本,和前面的*有点类似,但是每个符号的意义完全不同,注意不要搞混
字符匹配: . :任意单个字符
[]:指定范围的任意单个字符
[^]:制定范围外的任意单个字符
[:space:][:digit:][:alnum:][:alpha:][:lower:][:upper:][:punct:]
意思同通配符
字数匹配: * :前边的字符出现任意次数0,1,2,。。。。
\?:前边的字符出现0或者1次,即前边的数据可有可无
\+:前边的字符出现1次以上
\{m\}:前边的字符出现m次,多一次少一次都不行
\{m,n\}:前边的字符最多出现n次最少出现m次
\{0,n\}:前边的字符最多出现n次
\{m,\}:前边的字符最少出现m次
位置锚定: ^:行首,放在pattern最左侧
$:行位 右侧
^$:空白行,连空格都没有
^[:space:]*$:空行,有空格
\<:词首,放在单词的最左侧
\>:词尾, 右侧
\<\>:单词锚定
分组及引用:\(\):将多个字符括成一个整体
\1:是指,前边的括号,从最左侧的第一个左括号起,到其匹配的括号为止,括号里边的内容
\2: 二个
\3: 三个
\4: 四个
注:这种引用方式叫做后向引用
egrep:扩展正则表达式内容基本上同正则表达式相同,只是在字数匹配时做转义用的\可以不用添加
不同
或: |:|左侧全部内容或者|右侧全部内容
注意:|在某些环境下使用时要加上\来转义
C|cd:是指C或者cd而不是Cd或者cd,想表达后者的意思需要用到分组,即加括号
\(C|c\)d来表示
fgrep:不支持正则表达式的grep,并不是没用的,因为我们将来要检索的文档很多都是数据十分庞大的大文档,所以,在用不到正则表达式的是
后使用fgrep的效率将会更高
正则表达式是一个重要的内容,也是一个需要动脑的内容,应该多做练习
本文出自 “博客作业初版” 博客,谢绝转载!
以上是关于0520 第六节课的主要内容,如果未能解决你的问题,请参考以下文章