Linux的正则表达式和通配符(这是2个不同的概念)
通配符:它是由shell解析,并且一般用于匹配文件名。如:ls
正则表达式:是一个字符匹配标准,可以匹配文本中的内容
一些命令工具按此标准实现字符匹配,常用语支持正则表达式的工具,如grep,sed等。一般用于匹配文件中的内容
常用的通配符:
*:匹配任意多个字符
?:匹配任意一个字符
[...]:匹配中括号内出现的任意一个字符
[!...]:不匹配中括号内出现的任意一个字符
(搜索以p开头的所有文件)
(搜索pass后有2个字符的文件目录)
(搜索pass[acndw]d与[ ]内任意一个字符匹配的文件和目录,只搜到了passwd)
(搜索不到不与[ ]内匹配的pass[]d的文件或目录,加!表示不与[ ]内的任意字符匹配)
(若w不在[ ]内就可搜索到)
正则表达式:
编辑abc,并在其中写入一些字符
(使用cat查看adc并过滤有a.d的字符; “.”代表任意一个“*”代表任意多个)
(使用cat查看abc从头到尾)
(匹配空白行)
(搜索有大写字母的,和有4个大写字母的字符;其他字符操作也类似)
查找和替换
grep:只能用于查找文件中的内容
sed:可以查找,然后替换或者插入想要的内容
a:新增,a的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
d:删除,因为是删除,所以d后面通常不接任何东西
i:插入,i的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
p:列印,即将某个选择的资料印出,通常p会与参数sed
s:取代,可以直接进行取代的工作
删除adc的2到5行
在abc的第二行后面增加123456(使用a新增到目前的下一行,如图)
在abc的最后一行的前一行插入123456(使用$锚定到最后一行,用i在目前的前一行插入,如图)
把abc中的ad替换成da(使用s ,并紧接/,/的右边替换左边,如图【运用正则表达式,在上图】)
sed操作并不会对原文件进行修改只是在显示出来中做出修改
如果要对原文件进行修改,使用-i选项(慎用)
如果想要更了解sed和grep可以使用 man sed ; man grep
查找语句find
用法: find 【路径】【命令参数】【表达式】
参数:
-name“文件名”:查找指定名称文件
-user 用户名:查找指定用户拥有的文件
-group 组名:查找指定组拥有的文件
-mtime:查找在N天前被修改过的文件
-atime:查找在N天前被访问过的文件
-type d/f/b/l/p:查找指定类型的文件
-empty:查找为空的文件
-size:按容量大小查找
-perm mode:查找指定属性的文件
-exec command{}\;:查看指定的文件并执行指定的命令
-newer文件名:查找比指定文件新的文件
(查找/var下3天内被修改过的文件)
(查找/var下3天前被修改过的文件)
(查找/var下大于5M的文件(把+换成 - 就表示小于))
(查找/var下大于2M文件的详细信息)
(把/var中大于5M的文件拷贝至/tmp/shuaifile中,-a表示把文件属性保留,-r表示把文件和目录一起cp)
其他参数用法也类似,若想知道更多find用法:man find
原文地址:https://www.cnblogs.com/wangzhehui/p/11647922.html