[root@root 20180713]# more 1\*.sh #!/bin/bash#$*的区别echo'--------$*------------'# 如果下面这个 $* 不加引号 和下面的$@效果相同for i in"$*"doecho"参数是 --> $i"doneecho'--------$@--------'for y in"$@"doecho"参数-->$y"done#执行效果
[root@root 20180713]# sh 1\*.sh a b c a
--------$*------------
参数是 --> a b c a
--------$@--------
参数-->a
参数-->b
参数-->c
参数-->a
基础正则表达式
元素符
作用
*
前一个字符匹配0次或者任意多次
.
匹配除了换行符 任意一个字符
^
配置行首 ^hello 匹配以hello开头的行
$
配置行尾
[]
配置括号中指定的任意一个字符,只是匹配一个字符[0-9]配置一个数字
[^]
配置括号中除外的字符 [^a-z] 表示任意一个非小写字母
\
转义符
\{n\}
表示前面的字符恰好出现N次,[0-9]\{4\} 匹配4位数
\{n,\}
表示前面的字符出现不小于N次,[0-9]\{4,\} 匹配4位及以上的数字
\{n,m\}
表示前面的字符出现不小于N次,[0-9]\{4,8\} 匹配4位及以上的数字
eg
grep "a*"file.txt # 匹配所有内容包括空白行
grep "aa*"file.txt # 匹配至少有一个a的行
grep "s..d"file.txt # 匹配 s d 之间有两个字符
grep "^$" 配置空白行