Linux 查找文件中匹配指定模式的行
2017-07-19 19:34
253 查看
本文将通过grep命令和sed流编辑器两种方法完成要求
如果不了解sed流编辑器可以参考 linux sed流编辑器示例讲解以文件/usr/share/mime/packages/freedesktop.org.xml 为例
root@ubuntu:~# wc -l /usr/share/mime/packages/freedesktop.org.xml 37453 /usr/share/mime/packages/freedesktop.org.xml #首先我们统计一下文件的行数
1. grep命令的实现
解析
root@ubuntu:~# grep ich /usr/share/mime/packages/freedesktop.org.xml >/root/lines #过滤包含关键字符串 ich 的行并保存到 /root/lines root@ubuntu:~# wc -l /root/lines 341 /root/lines #统计过滤得到的文件的内容行数 #接下来查看过滤得到文件的前六行的内容 root@ubuntu:~# head -n 6 /root/lines <comment xml:lang="ast">ficheru Macintosh codificáu con BinHex</comment> <comment xml:lang="fr">fichier codé Macintosh BinHex</comment> <comment xml:lang="gl">ficheiro de Macintosh codificado con BinHex</comment> <comment xml:lang="oc">fichièr encodat Macintosh BinHex</comment> <comment xml:lang="pt">ficheiro codificado em BinHex de Macintosh</comment> <comment xml:lang="ast">ficheru de buzón de corréu</comment> #接下来查看源文件的前六行的内容,直观对比一下可以看出内容完全不一样,初步得出结论过滤成功 root@ubuntu:~# head -n 6 /usr/share/mime/packages/freedesktop.org.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mime-info [ <!ELEMENT mime-info (mime-type)+> <!ATTLIST mime-info xmlns CDATA #FIXED "http://www.freedesktop.org/standards/shared-mime-info"> <!ELEMENT mime-type (comment+, (acronym,expanded-acronym)? , (generic-icon? | glob | magic | treemagic | root-XML | alias | sub-class-of)*)> root@ubuntu:~#
2. sed流编辑器的过滤实现
解析
#使用sed流编辑器过滤包含关键字符串 ich 的行并保存到当前目录下的sed.txt root@ubuntu:~# sed -n '/ich/w sed.txt' /usr/share/mime/packages/freedesktop.org.xml ##统计过滤得到的文件的内容行数 root@ubuntu:~# wc -l sed.txt 341 sed.txt #接下来查看过滤得到文件的前六行的内容 root@ubuntu:~# head -n 6 sed.txt <comment xml:lang="ast">ficheru Macintosh codificáu con BinHex</comment> <comment xml:lang="fr">fichier codé Macintosh BinHex</comment> <comment xml:lang="gl">ficheiro de Macintosh codificado con BinHex</comment> <comment xml:lang="oc">fichièr encodat Macintosh BinHex</comment> <comment xml:lang="pt">ficheiro codificado em BinHex de Macintosh</comment> <comment xml:lang="ast">ficheru de buzón de corréu</comment> #最后利用文件比对工具diff来进行文件的一致性比对,结果为除了我们往文件最后添加的不同工具的处理结果的标志外其他内容完全相同 root@ubuntu:~# diff /root/lines sed.txt 342c342 < result by grep command --- > result by sed root@ubuntu:~#
拓展学习
linux sed流编辑器示例讲解
Linux diff命令使用简介
相关文章推荐
- Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键
- LINUX 在 指定目录下,包括子目录,查找文件中内容匹配的字符串
- Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键
- Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键
- Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键 批量修改文件名等
- linux查找目录下匹配字符串的文件命令
- Perl初级教程 (5) 遍历文件夹内指定扩展名文件,查找匹配关键字的输出。
- [linux ]find命令是用正则匹配目录查找文件
- Linux下用find查找并复制指定文件到指定目录下
- Linux下查找文件及查找包含指定内容的文件常用命令
- Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键
- Linux下搜索指定目录下文件中特定字符串并高亮显示匹配关键词
- linux 查找包含指定字符的文件列表 命令
- linux 查找指定内容并显示指定行数的命令,显示匹配行和行号
- 在Linux的Vim编辑器中,如何使用非贪婪匹配模式查找
- 在一个文件集合中查找匹配模式的行 (TCPL,练习7-7)
- Linux 查找指定文件并删除
- 文件内容查找匹配指定字
- Linux下,查找指定目录下的文件(find)
- linux在指定目录下查找包含特定文字的文件