linux基础学习之 grep总结

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。



你可能感兴趣的:(linux基础学习之 grep总结)