售前咨询
技术支持
渠道合作

读《sed与awk》第1~3章笔记

sed、awk功能

sed

在一个或多个文件上自动实现编辑操作

简化对多个文件执行相同的编辑处理工作

编写转换程序

awk

将文本文件看做由记录和字段组成的文本数据库

使用变量操作数据库

使用算术和字符串操作符

使用普通的程序设计结构,例如循环和条件

生成格式化报告

定义函数

从脚本中执行Unix命令

处理Unix命令的结果

更加巧妙地处理命令行的参数

更容易地处理多个输入流

sed、awk相似点

他们都是用相似的语法来调用

 

他们都是面向字符流的、都是从文本文件中-次一行地读取输入,并将输出直接送到标准输出端
他们都是用正则表达式进行模式匹配

他们允许用户在脚本中指定指令

元字符汇总

. 匹配除换行符以外的任意单个字符。在awk中,句点也能匹配换行符

* 匹配任意一个(包括零个)在它前面的字符(包括由正则表达式制定的字符)

[…]

匹配方括号中字符类中的任意一个。如果方括号中第一个字符为脱字符(^),则表示否定匹配,即匹配除了换行符和类中列出的那些字符以外的所有字符。在

awk中,也匹配换行符。连字符(-)用于表示字符的范围。如果类中的第一个字符为右方括号)则表示它是类的成员。所有其他的元字符在被制定为类中的成员

是都会失去它们原来的含义

^ 如果作为正则表达式的第一个字符,则表示匹配行的开始。在awk中匹配字符串的开始,即使字符串包含嵌入的换行符

$ 如果作为正则表达式的最后一个字符,则表示匹配行的结尾。在awk中匹配字符串的开始,即使字符串包含嵌入的换行符

\{n,m\} 匹配它前面某个范围内单个字符出现的次数(包括由正则表达式指定的字符)。\{n\}将匹配n次出现,\{n,\}至少匹配n次出现,而\{n,m\}匹配n和m之间的任意次出现。(只有sed和grep的一些非常旧的版本中不能使用)

\ 转义随后的特殊字符

扩张的元字符(egrep和awk)

+ 匹配前面的正则表达式的一次或多次出现

? 匹配前面的正则表达式的灵刺或一次出现

| 指定可以匹配其前面的或后面的正则表达式

() 对正则表达式分组

{n,m} 匹配它前面某个范围内单个字符出现的次数(包括由正则表达式指定的字符串)。{n}将匹配n次出现,{n,}至少匹配n次出现,而{n,m}匹配n和m之间的任意次出现。(用于POSIX的egrep和POSIX awk而不是传统的egrep或awk)

上一篇:

下一篇:

相关新闻

 

领取优惠
免费预约

申请试用SSL证书

提交成功!

咨询客服