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

脚本评论5阅读模式

sedawk功能
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)

Wed Jan 30 14:40:27 CST 2013

 
  • 本文由 yeho 发表于 2013-01-30
  • 转载请务必保留本文链接:https://linuxeye.com/290.html
读《Linux Shell脚本攻略》第7章笔记 脚本

读《Linux Shell脚本攻略》第7章笔记

这章内容比较简单,花了不到2小时,所以记录的也相对来说少了很多。 1. fping ping扫描工具大都需要等待前一个被探测主机返回某种响应消息之后才能继续探测下一台主机是否存在,但fping却能以轮...
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证