shell正则知识学习记录
1."^"表示行首定位符
“^”称为行首定位符,是正则表达式中的定位符之一,用来匹配行首的字符,表示行首的字符是“^”后面的那个字符。正则表达式中的定位符的作用与其他的元字符不同,它们不是用来匹配具体的文本,而是匹配某个具体的位置,例如行首定位符“^”就是用来匹配文本行的开头的字符的.
实例:
1 2 3 | #! /bin/bash str=`ls /etc | grep "^sh"` echo "$str" |
详解:代码的意思通过ls命令列出etc目录下的sh开头的文件并输出.首先通过ls命令列出/etc目录中的文件,然后将执行结果传递给grep命令,通过grep命令筛选出以字符串“sh”开头的文件名。上面的"`"是反单引号,"|"是管道,表示把前面的输出结果作为后面的输入.
 
2.行尾定位符"$"
与行首定位符的作用恰恰相反,行尾定位符的作用是用来定位文本行的末尾的。从语法上讲,行尾定位符的位置也与行首定位符相反,行首定位符位于所作用的字符之前,而行尾定位符位于所作用的字符之后。
实例:
1 2 3 | #! /bin/bash str=`ls /etc | grep "conf$"` echo "$str" |
详解:与上面那个实例差不多,这是是输出以conf结尾的文件.
 
3.单个字符匹配"."
圆点“.”用来匹配任意单个字符,包括空格,但是不包括换行符“n”。当用户使用“.”符号后,意味着该位置一定有一个字符,无论它是什么字符。
实例:
1 2 3 4 5 6 | #! /bin/bash str=`ls /etc | grep "shell"` echo "$str" echo "===============" str=`ls /etc | grep "shell."` echo "$str" |
详解:在上面的代码中,一共输出了两次文件名。第一个echo直接使用字符串“shell”去匹配文
件名,这样的话,只要包含这个字符串的文件名都会被筛选出来,无论这个字符串的后面有没有其他字符。第三个echo使用了圆点符号“.”,表示字符串“shell”后面至少有一个字符。
 
您的系统为:linux系统 请您文明评论