您的位置:首页 > 运维架构 > Linux

linux基础学习之 grep总结

2016-04-14 21:00 549 查看
grep是个很关键的命令:

**************************************************************************************************************************************************************

用法:grep [选项]… 模式 [文件]…

在每个文件中查找样式或标准输入。

PATTERN默认的是一个基本的正则表达式(BRE)。

例: grep –i ‘hello’menu.h main.c

***************************************************************************************************************************************************************

如果想查看没有某个字符的行,用反向选择[^]来实现。

想要查看the开头的:

#grep ‘^the’ a.txt

符号’^’在[]内和外是不同的,在[]内表示反向选择,在[]外表示定位在行首的意思。

搜寻空白行,

#grep ‘^$’ a.txt

(小数点). 代表一定有一个任意字符的意思

(星星号)* 代表重复前一个0到无穷多次的意思,为组合形态

限定连续字符范围{}

*******************************************************************************************************************************************************

正则表达式的选择和解释:

-E,--extended-regexp PATTERN是一个扩展的正则表达式(ERE)

-F,--fixed-strings PATTERN是一套新行分离修复字符串

-G,--basic-regexp PATTERN是一个基本的正则表达式(BRE)

-P,--perl-regexp PATTERN是一个Perl正则表达式

-e,--regexp=PATTERN 使用 PATTERN 来匹配

-f,--file=FILE 从 FILE 来获得 PATTERN

-i,--ignore-case 忽略大小写

-w,--word-regexp 强制 PATTERN 仅匹配整个词

-x,--line-regexp 强制 PATTERN 仅匹配整行

-z,--null-data 结尾为 0 字节而不是新行符的数据行

杂项:

-s,--no-messages 不显示错误信息

-v,--invert-match 选择不匹配的行

-V,--version 打印版本信息并退出

--help 显示本帮助并退出

--mmap 如果可能,使用内存映象作为输入

输出控制:

-m,--max-count=NUM 在有NUM个匹配后停止

-b,--byte-offset 在输出行的同时打印字节位移

-n,--line-number 在输出行的同时打印行数

--line-buffered flush outputon every line

-H,--with-filename print the filenamefor each match

-h,--no-filename suppress theprefixing filename on output

--label=LABEL print LABELas filename for standard input

-o,--only-matching show only the partof a line matching PATTERN

-q,--quiet, --silent suppress all normaloutput

--binary-files=TYPE assume thatbinary files are TYPE;

TYPE is `binary',`text', or `without-match'

-a,--text 等同于 --binary-files=text

-I 等同于 --binary-files=without-match

-d,--directories=ACTION how to handledirectories;

ACTION is `read',`recurse', or `skip'

-D,--devices=ACTION how to handledevices, FIFOs and sockets;

ACTION is `read' or`skip'

-R,-r, --recursive 等同于 --directories=recurse

--include=FILE_PATTERN 只搜索符合FILE_PATTERN型式的文件

--exclude=FILE_PATTERN 跳过名字为FILE_PATTERN的文件或目录

--exclude-from=FILE skip filesmatching any file pattern from FILE

--exclude-dir=PATTERN directories that match PATTERN will be skipped.

-L,--files-without-match print only names of FILEs containing no match

-l,--files-with-matches print only names ofFILEs containing matches

-c,--count print only a countof matching lines per FILE

-T,--initial-tab make tabs line up(if needed)

-Z,--null FILE名字后打印0字节

上下文控制:

-B,--before-context=NUM 打印 NUM 行上文

-A,--after-context=NUM 打印 NUM 行下文

-C,--context=NUM 打印 NUM 行输出上下文

-NUM 与 --context=NUM相同

--color[=WHEN],

--colour[=WHEN] 使用标记来高亮匹配的字符串;

WHEN 可取值为“always”,“never”或“auto”

-U,--binary 不去掉 EOL(MSDOS)处的 CR 字符

-u,--unix-byte-offsets 如果 CR 不在那里(MSDOS),报告偏移值

‘egrep’ 与 ‘grep -E’含义一致。‘fgrep’与 ‘grep -F’的含义一致。

直接调用‘egrep’和‘fgrep’的方式已经被废弃了。

没有 FILE或者 FILE 是 -,读取标准输入。如果少于两个 FILE,

假设 -h。如果任意行被选中,退出状态为 0;

如果出现任何错误并且 -q 未被给出,退出状态为 2。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: