ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

find,正则,gerp

2021-12-20 19:31:08  阅读:110  来源: 互联网

标签:文件 匹配 案例 gerp etc 正则 grep find


1.find

查找'文件'
根据文件的名称或者属性查找文件
man find

语法格式:
	find [查找范文] [参数]

参数:
	-name		:按照文件的名字查找文件
		find / -name '文件名称'
	*		:通配符
	-iname		:按照文件的名字查找(忽略大小写)
	-size		:按照文件的大小查找
		+		:大于指定文件大小
		-		:小于指定文件大小
		没有符号	:等于
	-mtiame		:按照修改时间查询
		+n		:n天以前
		-n		:n天以后
	-ctime		:同上
	-atime		:同上
	-user		:按照用户的属主查询
	-group		:按照用户的属组查询
	-type		:按照文件类型查询
	-inum		:依据文件的index node号查询
	-perm		:按照文件额权限查询(数字权限)
	
	-a		:并且(链接多个参数。默认)
	-o		:或者
	-maxdepth	:查询的目录深度(必须放置第一参数位)
	-exec		:将前面find处理好的结果交给其他命令执行

知识储备:
	dd	:生成指定大小文件
		dd if=/dev/zero of=100.txt bs-10M count-10
			if	:从什么地方读文件
			of	:写入到什么文件
			bs	:每次写入多少大小
			count	:写入多少次
案例:
	案例1:
	查询/etc目录下hosts文件
	find [/etc/] -name 'hosts'

	案例2:
	查询/etc目录下名称中包含hosts文件
	find /etc/ -name '*hosts*'
	'*hosts'

	案例3:要求把/etc目录下,所有的普通文件打包压缩到/tmp目录
	tar -czPf /tmp/etcv2.tar.gz `find /etc/ -type f | xargs`

知识储备:
	|:前面一个命令的结果交给后面的一个命令处理
	
	xargs:把处理的文本变成以空格分割的一行
	``:提前执行命令,然后将结果交给其他命令来处理

grep命令

三剑客之一:grep(文本过滤器)
	根据文本内容过滤文件

语法格式:
	grep [参数] [匹配规则] [操作对象]

参数:
	-n		:过滤文本时,将过滤出来的内容在文件内的行号显示出来
	-A		:匹配成之后将匹配行后n行显示出来
		grep -n -A ‘规则’ 操作对象
	-B		:前n行,同上取反
	-C		:前后n行,同上
	-c		:只显示匹配
	-o		:只显示匹配成功的内容
	-v		:反向过滤(打印内容是非匹配对象)
	-q		:静默输出
	-i		:忽略大小写
	-l		:匹配成功之后将文本的名称打印出来,不成功不打印
	-R|-r		:递归匹配
	-E		:使用扩展正则等价于egrep

知识储备:
	echo $?	:命令行中上一行命令执行的结果
		0	:代表执行成功
		其他	:执行失败
		
	wc	:匹配行数
		-l	:打印匹配行数
		-c	:打印匹配的字节数

正则

1.正则表达式分类:
	1.普通正则匹配
	2.扩展正则匹配

2.普通正则匹配:
	^		:以某字符开头
	$		:已某字符结尾
	.		:匹配除换行符意外的任意单个字符
	*		:匹配前导字符的任意个数
	[]		:某组字符串内的任意字符
	[^]		:取反
	[a-z]		:匹配小写字母
	[A-Z]		:匹配大写字母
	[a-zA-Z]	:匹配字母
	[0-9]		:匹配数字
	\		:取消转义
	()		:分组 
		\n		:代表第n个分组
3.扩展正则表达式:
	{}		:匹配的次数
		{n}		:匹配n次
		{n,}		:匹配最少n次
		{n,m}		:匹配n-m次
		{,m}		:最多匹配m次
	+		:匹配至少一个前导字符
	?		:匹配一个或零个前导字符
	|		:或

案例:
	案例1:在/etc/passwd文件中,匹配以ftp开头的行
		grep '^ftp'  /etc/passwd

	案例2:在/etc/passwd文件中,匹配以bash结尾的行
		grep 'bash$'  /etc/passwd

	案例x:匹配
		grep 'f*'  test.txt 0和多个都匹配出来

	案例3:匹配本机中有哪些ip
		ip a | egrep -o '[0-9]{1,3}/.{3}[0-9]{1,3}'
	
	案例4:将/etc/fstab中去掉包含#开头的行,且要求# 后至少有一个空格
		egrep '^#\ +'  /etc/fstab

	案例5:找出文件中至少有一个空格的行
		egrep '\ +'
		
	案例6:将nginx.conf文件中以#开头的行和空行全部排除
		egrep -v '^\ *#|^$'  /etc/nginx/nginx.conf

标签:文件,匹配,案例,gerp,etc,正则,grep,find
来源: https://www.cnblogs.com/yuanyangguo/p/15712551.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有