Linux 查找文件中匹配指定模式的行
来源:互联网 发布:js高级函数 编辑:程序博客网 时间:2024/06/07 18:58
本文将通过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命令使用简介
阅读全文
1 0
- Linux 查找文件中匹配指定模式的行
- LINUX 在 指定目录下,包括子目录,查找文件中内容匹配的字符串
- Linux中查找指定大小或者指定内容的文件
- linux中find查找正则匹配目录下的文件
- 在一个文件集合中查找匹配模式的行 (TCPL,练习7-7)
- linux 文件中查找匹配字符
- linux文件查找指定时间段的文件
- linux 查找指定文件
- [Excel VBA] 查找指定目录下的匹配文件
- Java 查找指定文件夹下的匹配文件
- Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键
- Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键
- linux 查找指定内容的文件
- Linux 查找含有指定字符串的文件
- linux查找指定大小的文件
- linux查找包含指定内容的文件
- linux中find查找指定时间段的文件并grep查找内容
- delphi中查找指定文件的例程
- CSS字体乱码
- 算法竞赛入门经典 UVa489Hangman Judge
- java基础之面向对象封装
- MR合并小文件
- linux下安装配置jira
- Linux 查找文件中匹配指定模式的行
- for循环判定质数合数
- 十进制转换为二进制
- Android Studio更改包名
- 接口隔离原则(Interface segregation principle)
- [BZOJ]4237 稻草人 CDQ分治 详细题解
- [LeetCode]112. Path Sum(判断二叉树根到叶路径和是否等于sum)
- java基础之单例设计与继承
- VTK利用BMP图像序列生成表面模型