
2、正则表达式(REGEXP):由一类特殊字符及文本符号所编写的表达式,这种表达式的功能是匹配文本当中字符串。
3、正则表达式的特点:可以通过特殊字符及文本符号灵活组合各种过滤条件去匹配文本内容,从而达到自由度颇高的筛查方式。
4、正则表达式分两类:基本正则表达式(BRE)、扩展正则表达式(ERE),grep 加上 -E 参数就是使用 egrep。
5、元字符分类:元字符是指正则表达式中使用的特殊字符,这些特殊符号具有特定的功能。从功能上分类有:字符匹配、匹配次数、位置锚定、分组。
①、 .:匹配任意单个字符。
②、 [ ]:匹配指定范围内的任意单个字符。
③、 [^]:排除匹配指定范围内的任意单个字符。
④、 [:alnum:]:过滤字母和数字,包含了大写字母、小写字母 和 10个数字(0-9)。
⑤、 [:alpha:]:任何英文大小写字符,即 A-Z,a-z。
⑥、 [:lower:]:只过滤小写字母。
⑦、 [:upper:]:只过滤大写字母。
⑧、 [:blank:]:空白字符(空格和制表符)。
⑨、 [:space:]:水平和垂直的空白字符(比 [:blank:] 包含的范围广)。
⑩-①、 [:digit:]:十进制数字。
⑩-③、 [:graph:]:可打印的非空白字符。
⑩-④、 [:print:]:可打印字符。相当于 [:alnum:]、[:punct:] 和 space。
⑩-⑤、 [:punct:]:标点符号。
grep '^[0-9]\{1,3\}$' test.txt | grep '^[1-9]'如果是变量
echo $var | grep '^[0-9]\{1,3\}$' | grep '^[1-9]'
$表示行尾
这个正则不匹配 12a 这样的字符串
你的变量内容是什么样的?
我用来测试的 test.txt 的内容:
123
321
123212
001
010
100
10000
0011
10101
1101
1
2
3
11
22
33
1a
2a
可以使用awk的条件筛选,这样写awk '{if($1==13 &&$2>87632565 &&$2<89632565 &&$3>87632565 &&$3<89632565)print $0}' filename.txt >newfile.txt
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)