操作系统实践记录(1)
1.grep
2.shell元字符与正则表达式中“ * ” “ ?”的区别
1.grep
1)grep -i ‘CS’ /tmp/student
‘CS’ 指专业为CS的学生条目
/tmp/student 指路径
2)grep -in ‘CS’ /tmp/student
所找的信息和1)一样,但是会显示这些信息在文件里所在的行数
3)grep -i ‘<CS’ /tmp/student
‘<CS’ 正则表达式,表示符合以CS开头的字符串,因为EECS的CS在后面,所以不再显示
补充:
正则表达式中,<aa表示以字符aa开头的单词
问题:
如果是想要只显示EECS呢?
4)grep -iv ‘CS’ /tmp/student
-iv ‘CS’ 表示非CS专业的学生
5)grep -i ‘CS’ /tmp/student
显示包含CS的目录及相关的一些信息
6)grep -i -l ‘CS’ /tmp/student
只显示包含CS的目录(多了个 -l )
7)grep -i -l ‘CS’ /tmp/student*
只显示包含CS的相关的目录(多了个 * ,联系正则表达式)
补充:
正则表达式中,
·xy*可以表示为x,xy,xyy,xyyy,相当于y是/*前的
字符,y可以是任意数个(0,1,2,3…)
·xy+可以表示为xy,xyy,xyyy,相当于y是+前的字符,y至少有一个(1,2,3…)
2.shell元字符与正则表达式中“ * ” “ ?”的区别
shell元字符 | 正则表达式 |
---|---|
* | * |
rm a*txt 删除abtxt、abctxt | rm a*txt 删除atxt、aatxt (/*前的字符出现任意多次) |
? | ? |
rm a?txt 删除aatxt、abtxt、actxt | rm a?txt删除atxt、a?txt (?前的字符最多出现一次) |