目录
"()"包含一组正则表达式"|"正则表达式的"或"操作符匹配一组可选的字符
基础正则表达式
rep,awk,sed等命令都支持正则表达式
grep后加”-n“显示行号(?)
cat /etc/passwd | grep /bin/bash | grep -v root | cut -d ":" -f 1
打开passwd,截取包含字符串”/bin/bash“的行,除了包含”root“字符串的,选择”:“为分隔符,截取第一列
“ * ”
#grep "a*" FileName
匹配所有内容,包括空白行
#grep "aa*" FileName
匹配至少包含有一个a的行
#grep "aaa*" FileName
匹配最少包含两个连续a的字符串
" . "匹配除换行符之外的任意字符
#grep "s..d" FileName
"s..d"会匹配在s和d这两个字母之间一定有两个字符的单词
#grep "s.*d" FileName
匹配在s和d字母之间有任意字符
#grep ".*" FileName
匹配所有内容
" ^"匹配一行的开头" $"结尾
#grep "^M" FileName
匹配以大写"M"开头的行
#grep "n$" FileName
匹配以小写"n"结尾的行
#grep -n "^$" FileName
匹配空白行(-n会显示空白行是第几行,不加-n只是显示几个空白行)
"[ ]"匹配括号内字符集制定字符
#grep "s[ao]id" FileName
匹配s和i字母中,要不是a,就是o
#grep "[0-9]" FileName
匹配任意一个数字
#grep "^[a-z]" FileName
匹配用小写字母开头的行
"[^]"
#grep "[^a-z]" FileName
匹配不用小写字母开头的行
#grep "[^a-zA-Z]" FileName
匹配不用字母开头的行
”\“
#grep "\.$" FileName
匹配使用”.“结尾的行
不加”\“会显示所有带"."结尾的行
”\{n\}“
#grep "a\{3\}" FileName
匹配a字母连续出现三次的字符串
#grep "[0-9]\{3\}" FileName
匹配包含连续的三个数字的字符串
”\{n,\}“
#grep "^[0-9]\{3,\}[a-z]" FileName
匹配最少用连续三个数字开头的行
”{n,m\}“
#grep "sa\{1,3\}i" FileName
匹配在字母s和字母i之间最少有一个a,最多三个a
"\<\>"标记单词边界
#尖括号必须是转义的,否则只有字符的字面含义
例:\<the\> 匹配单词"the",但不匹配"them","there"等
"?"匹配字符
#匹配1个或0个前边的字符
"ab?c" 匹配"ac"或"abc"
"+"匹配字符
#匹配个或多个前边的字符,作用和"*"号类似,但是不匹配0个字符
"ab+c" 匹配"abc" "abbc" "abbb…c"
不匹配"ac"
”\{\}“匹配前边正则表达式的次数
"[0-9]\{5\}"
匹配5位数字
"()"包含一组正则表达式
"|"正则表达式的"或"操作符匹配一组可选的字符
"a(b|cd)"
匹配"abd"或"acd"
“=~”正则表达式比较操作符
if [ [ $digit =~ [0-9] ] ]
then
echo "$digit is a diigit"
else
echo 'Oops'
fi
检测变量是否为十进制数字