sed 语言学习技巧(1)
与Vim的正则表达式有些不同,下面介绍sed的正则表达式:
1)^匹配一行的开始
2) $匹配一行的结束
3) .匹配任何的单个字符
4) *匹配另个或者多个以前出现的字符
5) [chars]为了匹配任何字符串的字符,可以使用-来定义字符的范围[a-z]匹配小写字母,[a-zA-Z]匹配一个字母[0-9]匹配数字[a-zA-Z0-9]匹配单个字母或者数字;
6)字符类关键字:[[:alnum:]]字母(a-zA-Z0-9)[[:alpha:]]字母(a-zA-Z)
7)引用&,表示被匹配的pattern的内容;
8)\(\)和相应的\1\2等替换排序内容等。
Sed:语法
1)‘4,10d’删除4到10行;’10,4d’只删除10行;’2,5!d’删除2-5行外的其他行;’4,+5d’删除第4行,继续删除下5行,停止删除输出其他行;’1,3d‘删除第一行后,跳过下面3行,继续删除第4行,然后以这种顺序进行删除;’4,d’错误;’,10d‘产生语法错误
2)s/pattern1/pattern2/flag,flag替换标志:g替换所有匹配的字符而不是第一个,Number,仅仅替换第n个匹配的字符;如果发生替换,输出匹配空间;w FILENAME发生了替换将内容写入FILENAME;I or i不区分大小写进行匹配;M or m除了^$正常行为外,^匹配换行符后的空字符串,让$匹配换行符前的空字符串;
3)
Sed:/pattern/action
Action有p输出该行,d删除该行,s/模式1/模式2/替代第一次出现的模式1和模式2;
cat /etc/passwd | sed ‘d’
sed –e ’d’ /etc/passwd这两个采用编辑命令删除记录。
评论