AWK匹配大小写

Table of Contents

在用AWK匹配字符串时候, 数字还好,如果是字母就需要考虑大小写,除非你清晰的记得你要搜索的字符串。

废话不多说,例子说话。

有个文件名为file.txt,内容如下,

376471 376471 java.lang.NullPointerException: null
376584 376584 java.lang.NullPointerException: null
376624 376624 java.lang.NullPointerException: null
376767 376767 java.lang.NullPointerException: null
376807 376807 java.lang.NullPointerException: null
376937 376937 java.lang.NullPointerException: null
376977 376977 java.lang.NullPointerException: null

 

问: 如何用AWK匹配NullPointerException字符串,在你不知道这个字符串里哪个是大小写的情况下?

 

答:AWK里有内建函数tolower()和toupper(),可以将域字段转换为小写或大写

[pc@centos603 ~]$ awk 'tolower($0) ~ /nullpoint/ { print NR,FNR,$0 }' file.txt
1 1 376392 376392 java.lang.NullPointerException: null
2 2 376471 376471 java.lang.NullPointerException: null
3 3 376584 376584 java.lang.NullPointerException: null
4 4 376624 376624 java.lang.NullPointerException: null
5 5 376767 376767 java.lang.NullPointerException: null
6 6 376807 376807 java.lang.NullPointerException: null
7 7 376937 376937 java.lang.NullPointerException: null
8 8 376977 376977 java.lang.NullPointerException: null