grep的基本语法
grep [options] pattern files
其中:pattern可以是使用正则表达式的模式匹配符或者就是一个word;files可以是一个文件或多个文件序列(搜索结果中会给出对应的文件名),也可以为空(当没有提供files时,默认搜索当前目录下的所有文件)。
两个特例:
grep pattern1 | pattern2 files 显示匹配pattern1或pattern2的内容
grep pattern1 files | grep pattern2 显示即匹配pattern1又匹配pattern2的内容
常用选项:
-c 只输出匹配行的计数,不显示匹配行的内容
-i 匹配文本时忽略大小写
-l 只列出匹配的文件名
-L 列出不匹配的文件名
-v 显示不包含匹配文本的所有航
-n 显示匹配行及行号
-d 后接的不是文件,而是一个目录
-H 显示文件名和行号(若有路径,会显示路径)
-h 不显示匹配行所在的文件名
-r 不仅搜索当前目录,还搜索目录下的子目录
-w 只匹配单词,而不是单词的一部分(如"magic"而不是"magical"的一部分)
常用举例:
1. grep "sort" *.doc 在所有.doc文件里搜索含sort字符串的行,并打印
2. grep -c "48" data.doc 输出文档中含有48字符的行数
3. grep -n "48" data.doc 显示所有匹配48的行和行号
4. grep -vn "48" data.doc 输出所有不包含48的行
5. grep -i "ab" data.doc 输出所有包含ab或Ab,AB,aB的字符串的行
6. grep '[239].' data.doc 输出所有含有以2,3或9开头的,并且是两个数字的行
7. grep '^[^48]' data.doc 不匹配行首是48的行
8. grep '[a-z]\{5\}' aa 显示所有包含字符串至少有5个连续小写字符的字符串的行
9. grep -r 明确要求搜索子目录
10.grep -d skip 忽略子目录
没有评论:
发表评论