Linux · 2009-04-16

shell基础十二篇_学习笔记_6_正则表达式

{ 命令; } 在当前shell下执行命令
( 在子sehll里执行命令 )

debian:~/test# { a=1; b=2; }
debian:~/test# echo $a$b
12

debian:~/test# ( a=3 b=4 ) # a与b的值并未在当前shell有所改变
debian:~/test# echo $a$b
12

&& “与” 执行成功后即退出状态为0,则继续下一条命令
|| “或” 退出状态不为0,也就是执行不成功,则继续下一条命令
;; “非” 无论成功与否,都将继续下一条命令

正则表达式:
\ 转义 [[ \\ 匹配 \ ]]
^ 匹配开始位置 [[ ^a 匹配由a开头 ]]
$ 匹配结束位置 [[ $a 匹配a结尾 ]]
* 匹配前面的子表达式0次或多次 [[ 最少0次,最多N次 ]]
+ 匹配前面子表达式1次或多次 [[ 最少1次,最多N次 ]]
? 匹配前面子表达式0次或1次 [[ 要么有,要么没有 ]]
{n} 匹配前面子表达式的次数 [[ a{3} 匹配aaa ]]
{n,}匹配至少N次 [[ a{2,}匹配aa或aaa]] 匹配aa或aa…N 两个a以上的都匹配
{n,m}精确匹配子表达式的次数 [[ a{1,2}匹配a与aa]]
. 匹配除了”\n”之外所有单个字符[[ 匹配换行为[.\n] ]]

a|b 匹配a或者b
debian:~/test# cat abc
abc
cba
debian:~/test# grep -E ‘(a|c)b(c|a)’ abc
abc
cba

[abc]匹配所设定的字符集
debian:~/test# cat abc
abc
cba
ABC
debian:~/test# grep -E ‘[abc]’ abc
abc
cba

[^abc]不匹配所设定的字符集
debian:~/test# cat 123
abc
123
debian:~/test# grep -E ‘[^123]’ 123
abc

[a-z] [A-Z] [0-9] = [[:alnum:]]

剩下的不太懂,有用到再查.