学习笔记4——Shell编程
一、基础正则表达式
1.正则表达式与通配符
● 正则表达式用来在文件中匹配符合条件的字符串,正则是 包 含 匹 配 \color{red}{包含匹配} 包含匹配。grep、awk、sed等命令可以支持正则表达式。
● 通配符用来匹配符合条件的文件名,通配符是 完 全 匹 配 \color{red}{完全匹配} 完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。
2.基础正则表达式
“*”前一个字符匹配0次,或任意多次
● grep "a*" test_rule.txt #匹配所有内容,包括空白行
● grep "aa*" test_rule.txt #匹配至少包含有一个a的行
● grep "aaa*" test_rule.txt #匹配最少包含两个连续a的字符串
● grep "aaaaa*" test_rule.txt #则会匹配最少包含四个个连续a的字符串
“.” 匹配除了换行符外任意一个字符
● grep "s..d" test_rule.txt #“s..d”会匹配在s和d这两个字母之间一定有两个字符的单词
● grep "s.*d" test_rule.txt #匹配在s和d字母之间有任意字符
● grep ".*" test_rule.txt #匹配所有内容
“^”匹配行首,“$”匹配行尾
● grep "^M" test_rule.txt #匹配以大写“M”开头的行
● grep "n$" test_rule.txt #匹配以小写“n”结尾的行
● grep -n "^$" test_rule.txt #会匹配空白行
“[]” 匹配中括号中指定的任意一个字符,只匹配一个字符
● grep "s[ao]id" test_rule.txt #匹配s和i字母中,要不是a、要不是o
● grep "[0-9]" test_rule.txt #匹配任意一个数字
● grep "^[a-z]" test_rule.txt #匹配用小写字母开头的行
“[^]” 匹配除中括