第三章 Linux特殊字符和正则表达式

来源:互联网 发布:the rain 久石让 知乎 编辑:程序博客网 时间:2024/06/07 16:38

一,本章内容

1,特殊字符

2,文件名通配符

3,多命令中的逻辑运算符和括号

4,命令中正则表达式

备注:本Linux系统为RHEL5.3

二,linux系统特殊字符

1,双引号

1]$ NAME=”mary” 

2]echo“now time: ’date’ ”    #使用反引号引用命令输出

3]# echo $NAME | grep jhon Alix错误错误错误

   # echo $NAME | grep “jhon Alix”

2,单引号

1]$ NAME=”mary” 

2]echo“now time: ’date’ ”    #使用反引号引用命令输出

3]# echo $NAME | grep jhon Alix错误错误错误

   # echo $NAME | grep ‘jhon Alix’

3,命令引用符反引号

# ls -l  ‘cat /etc/shells’

4,变量引用和命令转换符美元符号

$表示引用一个变量,只需在变量名称前面加上”$”

# ls -l $(cat /etc/shells)    # 使用命令转换符引用命令输出

5,反斜线屏蔽符

\屏蔽特殊字符本身的含义。

# echo “please pay \$15.50 .”    #使用反斜线屏蔽输出字符串中的$

三,文件名通配符

1?表示匹配文件名中任意一个字符

# ls -l a?   

# ls -l a??  

2*表示匹配文件名中的任意字符串,匹配长度可以是零到一个字符,也可是很长字符组成的字符串

# ls -l *c

# ls -l ee*c

# ls -l *c?

3[ ]字符范围匹配,用于匹配一个字符范围,其表现形式可以是“-”表示的字母和数字的范围,也可以是几个字符的组合

# ls -l [klsyz]*  #klsyz中任意字母开头的所有文件

# ls -l a*[cde]?

4[! ]排除范围匹配符,不匹配符号内出现的字符组合或字母数字范围

# ls -l [0-9][!0-9]  #有两个字符,且第一个为数字,第二个为非数字

四,多命令中的逻辑运算符和括号

1,逻辑或”||”

Command1 || command2

先执行命令1,若成功,则跳过命令2,若失败,执行命令2

# mail -f /root/mbox || echo “permission denied”

2,逻辑与”&&”

Command1 && command2

先执行命令1,若成功,执行命令2,,若失败,则跳过命令2

# mv ~/rm.txt / && echo “successfully moving files”

3,括号(){}

(command1 ; command2; command3...)

{command1 ; command2; command3...}

按顺序执行括号里面的命令,直至括号里面的所有命令执行结束,然后返回执行其他命令。

五,命令中正则表达式

1”.” 单字符匹配,放在”/ /”

“/.i....../”

“/27210103../”

2”*” 单字符或字符串重复匹配符,用来匹配单个字符或一个字符序列的一次或多次重复出现。

“/bo */” 可匹配、bo, boo, booooo...

3”^” 行首匹配符,用于在匹配中指示行首位置字符串或模式

“/^l/”

“/^2721010325/”

正则表达式不具备匹配文件名功能。因此不能对ls -l命令直接使用以上模式,可以将上面的模式交由一些筛选命令处理,如交由grep命令时:ls -l | gerp /^l/

4”$” 行尾匹配符,用于在文本的每一行的行尾匹配符串模式,使用时放在匹配字符串后面

“/^.....$l/”匹配所有只有5个字符的行

“/love$/”匹配行尾是love的行

5”\” 反斜杠屏蔽符,如屏蔽#; ,“ , ‘, : ,*, ^, $, ?, [], \

# expr 256 \* 256     

“/\^\^\.txt/”匹配^^.txt

6”[]” 匹配符

“/[Ll]ove/”匹配Love, love

 “/[^a-Z]/”表示不匹配所有字母

7”\<” ,”\> 词首匹配符,词尾匹配符

“/\<love/”匹配所有以love为词首的文本

“/love\>/”匹配所有以love为词尾的文本

8”x\{\}” 重复次数匹配符

“/m\{5\}/”匹配m出现次数为5次的文本

 “/m\{5,\}/”匹配m出现次数至少为5次的文本

 “/m\{5,10\}/”匹配m出现次数为510次的文本

9,组合使用正则表达式

“/^$/”匹配空行

    “/^.*$/” 用来匹配这样的整行:使用一种字符填充整行。

“/^[tT]he/”匹配以the或者The开头的所有行

“/^[^Tt]he/”排除以the或者The开头的所有行

“/[0-9]\{1,3}\.[0-9]\{1,3}\.[0-9]\{1,3}\.[0-9]\{1,3}\/”匹配一个IP地址

“/\<love\>/”精确匹配love

 

 

原创粉丝点击