O-Linux&Shell-W6
正则表达式练习(共10分)
正则表达式相关练习
1、空文件的建立(0.5分)
使用个人用户在用户主目录~下,一次性创建如下文件:
class1
and
class2
no
minna
please
hand
in
your
homework
before
November
5th
2、简单字符串定向查询练习(0.5分)
查询用户主目录~下文件名包含s1字符串的文件,并将查询结果重定向到myhomework文件中。
3、起始标志符练习。(0.5分)
查询用户主目录~下文件名以a字母开头的文件,并将查询结果增量重定向到myhomework文件中。
4、结尾标识符练习。(0.5分)
查询用户主目录~下文件名中以2数字结的文件,并将查询结果增量重定向到myhomework文件中。
5、起始与结尾标识符配合使用练习。(0.5分)
查询用户主目录~下文件名中以n字母开始以o字母结尾,中间不限字符的文件,并将查询结果增量重定向到myhomework文件中。
6、固定字符长度查询条件使用练习。(1分)
查询用户主目录~下文件名中长度是5位的文件,并将查询结果增量重定向到myhomework文件中。
7、定向位数查询练习。(1分)
查询用户主目录~下文件名第四位是a字母的文件,并将查询结果增量重定向到myhomework文件中。
8、特定多字符的查询条件练习。(1分)
查询用户主目录~下的文件名有h字母,并且有d字母,且h字母在d字母之前的文件,并将查询结果增量重定向到myhomework文件中。
9、管道嵌套组合查询(0.5分)
查询用户主目录~下文件名是以i开头且长度为2的文件,并将查询结果增量重定向到myhomework文件中。
10、管道嵌套组合并非集查询练习(1分)
查询用户主目录~下文件名不在a-n、p-q、s-t、v-x、z中,且文件名长度为为4的文件,并将查询结果增量重定向到myhomework文件中。
11、任意字符出现固定次数的查询练习(1分)
查询用户主目录~下文件名中出现了两次o的文件,可连续,也可不连续出现,并将查询结果增量重定向到myhomework文件中。
12、多查询条件的查询练习。(1分)
查询用户主目录~下文件名中出现be或者re字符串的文件,并将查询结果增量重定向到myhomework文件中。
13、自由查询练习。(0.5分)
将用户主目录~下文件5th用任意方式单独查出,注意,不可直接使用字符串查询,要有正则表达式的内容体现,且结果只能有5th,而不能有其他结果,并将查询结果增量重定向到myhomework文件中。
14、使用任意查看命令查看myhomework文件里的内容。 (0.5分)
step01:
一次新建多个文件:
touch class1 and class2 no minna please hand in your homework before November 5th
step02:
用到的命令有 ls
查看当前目录下的文件
grep
抓取内容,搜索匹配
|
管道,用一句话来描述什么是管道:把前一个命令原本要输出到屏幕的数据当作是后一个命令的标准输入
ls | grep 's1' >> myhomework
#此处用>重定向会更好: ls | grep 's1' > myhomework
step03:
文件名以a开头:
^
作为行首提示符
ls | grep '^a' >> myhomework
step04:
$
作为行末提示符
ls | grep '2$' >> myhomework
step05:
.
代表任意字符,*
匹配其前面一个字符出现任意次0-n次
ls | grep '^n.*o$' >> myhomework
step06:
文件名长度为5,组合方式多种:
{n}
作用是使其前边的字符重复匹配n次,这里重复5次:
ls | grep '^.\{5\}$' >> myhomework
#或者用通配符
ls | grep ????? >> myhomework
step07:
以下任意一行都可实现
ls | grep '^…a.*' >> myhomework
#或者用$限制
ls | grep '^…a.*$' >> myhomework
#或者用{}重复匹配
ls | grep '^.\{3\}a.*' >> myhomework
#或者
ls | grep '^.\{3\}a.*$' >> myhomework
step08:
以下任意命令都可实现
ls | grep '^.*h.*d.*$' >> myhomework
#或者不用提示符约束限制
ls | grep '.*h.*d.*' >> myhomework
#或者用通配符
ls | grep [h]*[d] >> myhomework
step09:
以下任意命令都可实现
ls | grep '^i.$' >> myhomework
#或者
ls | grep '^i.\{1\}$' >> myhomework
step10:
ls | grep '^[^a-np-qs-tv-xz]\{4\}$' >> myhomework
step11:
以下任意命令都可实现
ls | grep '^.*o.*o.*$' >> myhomework
#或者
ls | grep 'o.*o' >> myhomework
step12:
ls | grep 'be\|re' >> myhomework
step13:
自由发挥,符合条件即可,举例:
ls | grep '^[1-5].*[h-t]\{2\}' >> myhomework
#或者
ls | grep '^[0-9][a-z]\{2\}' >> myhomework
step14:
cat myhomework