zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Linux下grep使用

Linux grep 使用
2023-09-11 14:22:09 时间
“grep”名字的含义是“global regular expression print“。
查找条件控制参数:
-i / --ignore-case : 忽略大小写
-r  / --recursive : 在文件夹查找中递归查找
-I : 搜索跳过二进制文件
-a : 将二进制文件当作text文件处理
-E / --extended-regexp : 使用扩展正则表达式模式查找
-F / --fixed-strings : 使用固定字符串为查找模式
-G / -basic-regexp : 使用基本正则表达式模式查找
-P / --perl-regexp : 使用perl语言的正则表达式
-e / --regexp=PATTERN : 使用正则表达式
-f / --file=FILE : 使用文件中的匹配模式
-w / --word-regexp : 全单词匹配
-x / --lines-regexp : 整行匹配
-m / --max-count=NUM : 当查找到最大匹配数目时,停止查找。
显示内容种类控制:
默认显示匹配行的内容
-l / --files-with-matches : 显示匹配条件的文件名
-L / --file-without-match : 显示不匹配条件的文件名
-c / --count : 显示匹配条目的个数
-h / --no-filename :  当查找多个文件时,不显示文件名
显示匹配行内容时的显示控制参数:
-v / --invert-match : 输出不匹配的行
-n / --line-number : 显示匹配内容时标注行数
-B / --before-context=NUM : 显示匹配行时,向前多显示几行
-A / --after-context=NUM : 显示匹配行时,向后多显示几行
-C / --context=NUM / -NUM : 显示匹配行时,前后各显示几行。
-b / --byte-offset : 显示匹配行内容时,同时显示当前行在整个文件中的字节偏移位置
1,寻找文件内匹配某个模式的行
grep [options] pattern [file ...]
举例:
ls /bin /usr/bin | sort | uniq | grep zip
将/bin和/usr/bin下面的文件名列出来,通过冠道传给sort进行排序。
排序过后的结果传给uniq,将重复的内容去掉。
再通过管道把结果传给grep命令,作为输入文件,查找匹配zip的行。
举例:
grep bzip dirlist1.txt dirlist2.txt
在dirlist1.txt和dirlist2.txt中查找bzip。
grep bzip dirlist*.txt
在dirlist开头的文本文件中查找bzip。
只显示包含bzip字符串的文件名:
grep -l bzip dirlist*.txt
显示不包含bzip的文件名:
grep -L bzip dirlist*.txt
2,查找文件夹里面文件的内容是否匹配某个模式
grep -r foo
从当前文件夹开始递归查找,包含foo字符串的文件的匹配的行内容。
注意,直接使用grep foo,只是从标准输入读取搜索内容,而不是查询当前文件夹。
如果要工作,需要在控制台输入被查找的内容。Ctrl+D结束输入(输入EOF)。
3,使用正则表达式。
请参照正则表达式的规则,来更好的使用grep的功能。