知识拾遗–Linux文本处理三剑客
在Linux上,有众多的文本处理工具,其中最著名用的也最多的就是三剑客了,哪三剑客呢?
- grep:文本过滤(模式:pattern)工具
- sed:strean editor,流式编辑器
- awk:Linux上的实现gawk ,文本报告生成器
接下来我们就来详细聊聊三剑客的使用~
grep
grep: Global search REgular expression and Print out the line。
作用:文本编辑工具,根据用户指定的“模式”对目标文本逐行进行匹配检查,打印匹配到的行;
模式:由正则表达式及文本字符所编写的过滤条件;
REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符不表示字符表面的意义,而表示控制或通配的功能;
正则表达式引擎
1 | grep [OPTIONS] PATTERN [FILE...] |
基本正则表达式元字符
1 | 字符匹配: |
匹配次数
1 | *:匹配前面的字符任意次 |
位置锚定
1 | ^:行首锚定;用于模式的最左侧; |
分组
1 | \(\):将一个或多个字符捆绑在一起,当作一个整体进行处理; |
Practice
1 | 1、显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式) |
sed
sed:Stream EDitor:行编辑器:
1 | sed [option]... 'script' inputfile... |
编辑命令
1 | d: 删除 |
高级编辑命令:
1 | h: 把模式空间中的内容覆盖至保持空间中; |
GUN awk
gawk - pattern scanning and processing language
基本语法
1 | gawk [options] 'program' FILE ... |
1、print
1 | print item1, item2, ... |
2、变量
1 | 2.1 内建变量 |
3、printf命令
1 | 格式化输出:printf FORMAT, item1, item2, ... |
4、操作符
1 | 算术操作符: |
5、PATTERN
1 | (1) empty:空模式,匹配每一行; |
6、常用的function
1 | (1) Expressions |
7、控制语句
1 | 7.1 if-else |
8、array
1 | 关联数组:array[index-expression] |
9、函数
1 | 数值处理: |
“三剑客”功能强大,想要用好还需多加练习