linux 中 [^] 正则表达式,匹配不在中括号内的任意一个字符。
[^] :匹配不在中括号内的任意一个字符。
中括号内可以是一个字符组或字符范围;
1[^01]能够匹配 12 和 13,但是不匹配 11 和 10;A[^0-9]匹配 A 以及随后除数字外的任意单个字符。
awk正则测试:
[root@pc1 test]# ls a.txt [root@pc1 test]# cat a.txt ab1 kk abce j abj kk ab35 uy abr56 jh [root@pc1 test]# awk '$1 ~ /ab[0-9]/' a.txt ## 输出第一列中匹配ab + 数字的行 ab1 kk ab35 uy [root@pc1 test]# awk '$1 ~ /ab[^0-9]/' a.txt ## 输出第一列中匹配ab + 非数字的行 abce j abj kk abr56 jh [root@pc1 test]# awk '$1 ~ /ab[^1]/' a.txt ## 输出第一列中匹配ab和不为1的行 abce j abj kk ab35 uy abr56 jh [root@pc1 test]# awk '$1 ~ /ab[^a-z]/' a.txt ## 输出第一列中匹配ab和不为字母的行 ab1 kk ab35 uy