正则表达式
Posted yujiebin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。
一、单引号、双引号、反斜杠
单引号:保留括起的所有字符的字面值。
双引号:除了$、反引号(可替换成$())、反斜杠保留特殊含义,保留括起的所有字符的字面值。
(转义字符):仅取消单个字符的特殊含义。
示例:
(1)参数替换
num=3
echo ‘$num’
$num
echo “$num”
3
(2)命令替换
[[email protected] ~]# echo ‘`ls`‘
`ls`
[[email protected] ~]# echo "`ls`"
anaconda-ks.cfg
bin
classroom-rhce-post.log
Desktop
DHCP-ranges.txt
Documents
Downloads
examrhce-0.0.1-1.el7.x86_64.rpm
ldap
Music
Pictures
Public
selinux_modules
Templates
Videos
命令中带有-e和不带-e的反斜杠参数
[[email protected] ~]# b=n ###将n字符赋值给b
1、[[email protected] ~]# echo -e "\$b"
###双引号内,\变成了字符,而$b变成了n。结果字符串为
。而echo又识别转移字符
,所以结果输出是回车。
2、[[email protected] ~]# echo -e "\u"
u
###双引号中的\转成了字符,双引号输出结果为u。由于u在linux系统里没有定义,所以只好输入u
3、[[email protected] ~]# echo -e "\u"
u
###双引号中的\转成字符,双引号输出结果为\u。由于-e参数识别了转义字符,使得\u转成了字符u,输入u
4、[[email protected] ~]# echo -e "\$u"
###双引号中的\识别成,而$u识别成了n。双引号输出u。由于-e参数识别了转义字符,使得
变成了回车并输出。
5、[[email protected] ~]# echo -e "\$u"
$u
###双引号中\识别成字符,$识别成$,双引号中输入$u。由于-e参数虽然可以识别
等参数,由于man文件中echo识别不了$,只好输出$u。
6、[[email protected] ~]# echo -e "\n$u"
$u
###双引号中\识别成字符,$识别成$,双引号输出
$u。由于-e参数可以识别
,所以输出回车+$u。
二、倒引号
功能等同于$()。将倒引号中的内容或$()中的执行结果作为原命令的值。
不推荐使用倒引号,因为不符合posix编程规范。推荐使用$()
示例:
[[email protected] ~]# echo "`ls`" > /root/test.txt
[[email protected] ~]# cat /root/test.txt
anaconda-ks.cfg
bin
classroom-rhce-post.log
Desktop
DHCP-ranges.txt
Documents
Downloads
examrhce-0.0.1-1.el7.x86_64.rpm
ldap
Music
Pictures
Public
selinux_modules
Templates
Videos
[[email protected] ~]# echo "$(ls)" > /root/test.txt
###符合posix编程规范,强烈推荐使用
[[email protected] ~]# cat /root/test.txt
anaconda-ks.cfg
bin
classroom-rhce-post.log
Desktop
DHCP-ranges.txt
Documents
Downloads
examrhce-0.0.1-1.el7.x86_64.rpm
ldap
Music
Pictures
Public
selinux_modules
Templates
test.txt
Videos
[[email protected] ~]#
三、小括号、中括号、大括号
以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章