Linux-查找和筛选工具_第1页
Linux-查找和筛选工具_第2页
Linux-查找和筛选工具_第3页
Linux-查找和筛选工具_第4页
Linux-查找和筛选工具_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 第8章 查找和筛选工具8.1 查找文件工具find8.2 查找文本工具grep8.3 流编辑器sed8.4 格式化文本数据抽取工具awk28.1 查找文件工具find find用于从指定路径查找文件,类似于windows中的搜索功能。【命令格式】nfind path param1 param2【常用选项】npath:查找路径。如果未指定,则默认为当前工作目录3nparam1:指定按照文件的哪种特征查询name:按文件名查找perm:按文件权限查找mtime +/-n:按文件的修改时间查找(+n表示修改时间距现在n天以前,-n表示修改时间距现在n天以内)atime +/-n:按文件的访问时间

2、查找文件user:按文件属主查找4nparam2:指定如何处理查找到的文件prune:不在指定目录中查找print:将查找到的文件输出到标准输出(可省略)exec:对查找到的文件执行exec后的shell命令ok:对查找到的文件执行ok后的shell命令,在每次执行前将提示用户是否执行xargs:基本功能类似exec、ok5利用exec和ok参数处理查找到的文件时,存在一些缺陷:1、系统对参数exec、ok传递给shell命令的文件列表长度有一定的限制。当find命令查找到的文件数量很多时,会出现参数列表溢出错误。2、参数对find命令找到的每一个文件发起一个相应的处理进程,当find命令查找

3、到的文件数量很多时,可能会影响整个系统性能。6【用法示例】n按文件名称查找find -name “1401.c”find . -name “1401.c”find . -name “1401.c” printfind / -name “sysconfig”find /etc -name “passwd”7n按文件权限查找(以便于发现可能导致泄密、不安全的内容等)find / -perm 664find / -prem 664 find.txt8n按文件的时间戳查找find -mtime +7n按文件属主查找find /home -user xionggh9n使用exec、ok、xargs处理查

4、找到的文件命令格式如下:-exec shell命令 ;-ok shell命令 ;| xargs shell命令;find -name “tmp.c”-exec rm ;find -name “tmp.c”-ok rm ;find -name “tmp.c”| xargs rm;108.2 查找文本工具grep grep用于从命令输出或文本文件中查找指定内容。【命令格式】ngrep option pattern file【常用选项】ni:忽略大小写nn:将结果输出的同时,也输出该行的行号ns:在没有查找到匹配到的内容时,不显示错误信息nl:从多个文件中查找时,只输出找到匹配内容的文件名称nh:从

5、多个文件中查找时,只输出匹配的内容,不显示文件名称nc:只输出匹配内容的总行数nv:反转查找,即输出匹配内容以外的行11【用法示例】n在文件/etc/passwd中查找root用户grep “root” /etc/passwdn在文件/student.c中查找出所有来自dali的学生grep -i“dali” /在文件/student.c中查找出所有来自dali以外的学生grep -iv“dali” /student.cfind /etc -name “*”|xargs grep root128.3 流编辑器sed sed(stream editor)是一种非交互式文本编辑器,是一个非常重要的

6、文本过滤工具,在编写系统维护和管理的脚本时经常用到。 sed工作时,首先读取文本中第1行,将其放入一个被称为模式空间的临时缓冲区内,然后再读取第1条编辑指令,使用指令中定义的模式和行号查找、编辑文本。完成编辑后,将结果输出并读取下一行,重复这个过程直到文本结束。【命令格式】nsed option command file【常用选项】nn:不输出所有行(默认情况是输出所有行)13【常用的定位方式】 使用sed编辑文本时,应该向其指出要编辑的位置信息,通常使用一个行号或指定一个行号范围,也可以使用正则表达式对要编辑的文本进行模式匹配nn:表示行号为n的行nm,n:从第m行到第n行nm,n!:排除第

7、m行到第n行n/pattern/:匹配pattern的所有行14【常用的编辑指令】 使用sed编辑文本时,使用编辑指令可以对文本执行修改、删除和替换等操作。np:将指定的行输出到标准输出nd:删除指定的行natext:在指定行后面加入textnitext:在指定行前面加上textnctext:使用text替换指定行ns/pattern1/pattern2/g:将pattern1替换为pattern215【用法示例】n显示行sed -n 2p /etc/passwdsed -n 2,6p /etc/passwdsed -n /root/p /etc/passwdsed -n /root/p /e

8、tc/passwd16n删除行sed 1,4d /etc/passwdsed /root/d /etc/passwd17n插入格式如下:指定的行或模式aicThe first line.The second line.The last line.sed 1aThis is a new line. /etc/passwdsed iThis is a new line. /etc/passwd18n替换sed s/:/;/g/etc/passwdsed 1s/:/;/g/etc/passwdsed -n1s/:/;/g/etc/passwdsed -n1s/:/;/gp/etc/passwd198

9、.4 格式化文本数据抽取工具awk awk通常用于从格式化文本文件中抽取数据。格式化文本一般使用某个特定的字符(称为域分隔符)将文本中不同的字段隔开。例如系统用户信息文件/etc/passwd。【命令格式】nawk -F command file【常用选项】nF:用于指定域分隔符(默认情况下,域分隔符为空格)20【命令处理过程】 awk被调用后,首先读入第1行文本并按选项F指定的域分隔符将各个字段划开。以/etc/passwd第一行为例: root:x:0:0:root:/root:/bin/bash 处理这个文件时,应该使用选项F指定域分隔符为冒号“:”,划分完成后将这一行称为一条记录。一条记录中的各个字段按顺序称为域1、域2、域3,为方便对这些字段进行处理,使用标识符“$1”表示第1个字段,“$2”表示第2个字段依此类推。如果要表示整条记录,使用标识符“$0”。21【模式和动作】 与sed命令一样,模式用来指定动作执行的文本位置。在awk中,模式可以是条件语句、模

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论