awk 正则表达式与输入文件读取
1. 正则表达式替换示例
使用 sub() 函数可以对输入记录进行修改。 sub() 函数会用第二个参数指定的字符串替换第一个参数匹配到的文本的第一个实例。例如,正则表达式 /a+/ 表示一个或多个 a 字符,替换文本为 <A> :
$ echo aaaabcd | awk '{ sub(/a+/, "<A>"); print }'
<A>bcd
在简单的匹配/不匹配测试中,正则表达式匹配最左边、最长的输入字符序列这一特性可能不太重要,但在使用 match() 、 sub() 、 gsub() 和 gensub() 函数进行文本匹配和替换时,这一特性就非常关键了。
2. 使用动态正则表达式
~ 或 !~ 运算符的右侧不一定是正则表达式常量(即斜杠之间的字符字符串),也可以是任何表达式。表达式会被求值,如果需要会转换为字符串,字符串的内容将作为正则表达式使用,这样计算得到的正则表达式被称为动态正则表达式或计算型正则表达式:
BEGIN { digits_regexp = "[[:digit:]]+
超级会员免费看
订阅专栏 解锁全文
3

被折叠的 条评论
为什么被折叠?



