grep用法小结

摘要:
文件:textmole mac~$catextabcafmole mac~$grep-A1'^a'textab--af BNUM,--before context=NUM有关详细信息,请参见-a。只有打印匹配行之前的NUM行-C-count禁止grep的正常输出,只输出匹配每个文件的行数。如果ACTION是递归的,grep将递归地读取每个目录中的所有文件,这相当于-r显式项-EPATTERN--regexp=PATTERN保护以-开头的PATTER。Mole actor$grep-F“a.c$bbc”textaacbbc-fFILE--file=file从文件中获取PATTERN,一行对应一个表达式-G。--basic regexp将PATTERN解释为一个基本表达式,grep默认为-MNUM,--max count=NUM当NUM行匹配时,grep将不再匹配文件的其余部分--Include=PATTERNgrep递归读取目录中可以匹配--Include=PATTERN表达式的文件作为输入文件。Grep正则表达式类似于perl。
grep 选项注解

NAME
grep, egrep, fgrep - print lines matching a pattern
SYNOPSIS
grep [options] PATTERN [FILE...]
grep [options] [-e PATTERN | -f FILE] [FILE...]
-A NUM --after-context=NUM
除了打印本身匹配的行外,别外打印出匹配行后的 NUM 行,多组匹配之间用 -- 分割。
FILE: text
mole-mac ~$ cat text
a
b
c
a
f
c
mole-mac ~$ grep -A 1 '^a' text
a
b
--
a
f
-B NUM, --before-context=NUM
参见 -A,只是打印是匹配行之前的 NUM 行。
-C NUM, --context=NUM
参见 -A,只是打印匹配行前后 NUM 行。
-a, --text
将二进制文件作为文本文件处理
-b, --byte-offset
打印匹配行之前的字节数
File: text
mole-mac ~$ cat text
cat text
aac
bbc
jjc
ccc
aac
ffc
ccc
mole-mac ~$ grep -b '^aa' text
0:aac
17:aac
--colour[=WHEN] --color[=WHEN]
对匹配的字符进颜色显示,可选值为 `never', `always', or `auto',涉及环境变量 GREP_COLOR。
-c --count
抑制 grep 正常输出,只是输出每个文件匹配的行数。如果与 -v, --invert-match 并用,则输出非匹配行数。
-d ACTION --directories=ACTION
如果输入的文件是一个目录,使用 ACTION 处理。默认 ACTION 为 read, 意思是如果目录为原始文件则目录就会被读取。
如果 ACTION 为 skip,目录则会被略过。
如果 ACTION 为 recurse,grep 则会递归读取每个目录下的所有文件,这一行为等同于 -r 显项。
-E --extended-regexp
将 PATTERN 解为扩展正则表达式。
-e PATTERN --regexp=PATTERN
对于以 - 开头 PATTERN 起保护作用。
-F --fixed-strings
将 PATTERN 解释以换行符隔开多组字符串(注意:只是字符串,元字符在此处只作字符串解释),只要其中一个表达式能匹配,则该行就能匹配。
mole-mac test$ grep -F "a.c$
bb
c " text
aac
bbc
-f FILE --file=FILE
从文件中获取 PATTERN,一行为一个表达示。空文件表示0个表达示,所以什么也不匹配。
-G, --basic-regexp
将 PATTERN 解释为基本表达式,grep 默认为此情况。
-H, --with-filename
输出每个匹配行所在的文件。
-h --no-filename
当对多个文件进行查找时,此选项可以不输出文件名
-i, --ignore-case
匹配时忽略大小写。
-L, --files-without-match
输出没有匹配行的文件名,与 -l 相反。
-l, --files-with-matches
输出有匹配行的文件名,与 -L 相反。
-m NUM, --max-count=NUM
当匹配NUM行后,grep 不再对文件其余部分继续匹配。如果与-v连用,则刚好相反。
--mmap
用 mmap 系统调用取代默认的 read 系统调用,有时可提高性能,但可能会产生一些副作用。
-n, --line-number
在每行匹配的开头输出此行在文件中的行号。
-o, --only-matching
仅仅输出匹配 PATTERN 的字符串,而不是整行。
--label=LABEL
Displays input actually coming from standard input as input coming from file LABEL. This is especially useful for tools like zgrep, e.g. gzip -cd foo.gz |grep --label=foo something
--line-buffered
打开行缓冲,提高性能。
-P, --perl-regexp
将 PATTERN 作为 perl 规则的表达式进行解释。如果对 perl 或 php 语言比较熟悉,值得用此选项。
-q, --quiet, --silent
不输任何信息,如果匹配到,则返回0,否则返回 1。在编写 shell 脚本时比较有用,通过 $? 获取结果值。
-R, -r, --recursive
递归匹配目录下的每个文件。
--include=PATTERN
grep 递归读取目录下能够匹配 --include=PATTERN (PATTERN,只是shell简单的文件元字符扩展) 表达式的文件作为输入文件。
--exclude=PATTERN
与 --include=PATTER 相反
-U, --binary
除了在window平台用一定用处外,在其它类 unix 平台下无用。
-u, --unix-byte-offsets
与 -U --binary 差不多。
-V, --version
版本信息。
-v, --invert-match
反转匹配,捕获非匹配。
-w, --word-regexp
类似于正则表达式中的 \b 单词边界,设置此选项后,就是在每行中某个词要与 PATTERN 完全匹配;不匹配包含该词的行。
-x, --line-regexp
与 -w 类似,只不过这里要匹配整个行。
-y Obsolete synonym for -i.
-Z -NULL 类似于find -print0 选项。
grep 正则表达式与 perl 相似。

免责声明:文章转载自《grep用法小结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MSSQL数据库各角色权限Android Camera 通过V4L2与kernel driver的完整交互过程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

easyUI制作slider小滑块,可拖动和精确输入

借助easyUI制作、完善slider小滑块。 可拖动、和在右边输入框精确输入 效果图: html代码:             <div class="text_fl" >亮度设置:</div> <div class="logo-1 fl"></div>...

MariaDB/MySQL备份和恢复(三):xtrabackup用法和原理详述

MariaDB/MySQL备份恢复系列:备份和恢复(一):mysqldump工具用法详述备份和恢复(二):导入、导出表数据备份和恢复(三):xtrabackup用法和原理详述 xtrabackup是percona团队研发的备份工具,比MySQL官方的ibbackup的功能还要多。支持myisam温全备、innodb热全备和温增备,还可以实现innodb的...

利用python将ip转换为10进制

def int2ip(num): data = [] for i in range(4): num ,extra = divmod(num, 256) data.insert(0, str(extra)) return ".".join(data) def ip2int(astr): ipnum = astr.split(".") num = 0 for...

WPF自定义控件的制作

  因为有时候需要定制化的控件,需要多个控件的组合及复杂功能的集成,这样可以考虑自定义用户控件。下面分享一个简单的数值增减功能的自定义控件作为说明。 效果图如下: 1、创建自定义用户控件(添加->新建项->用户控件) 2、编写XAML <UserControl x:Class="XXX.自定义控件.MyNumericUpDown"...

转:Oracle 10g批量绑定forall bulk collect

批量绑定可以通过减少在PL/SQL和SQL引擎之间的上下文切换(context switches )以此提高性能。批量绑定(Bulk binds)主要包括:(1) Input collections, use the FORALL statement,用来改善DML(INSERT、UPDATE和DELETE)操作的性能。(2) Output collect...

6Java控制结构

顺序结构 从上到下依次执行,中间没有判断和跳转 比如Java中定义变量中的前向应用,先定义,在使用 分支结构(if, else, switch) 单分支 if // if 的快速入门 import java.util.Scanner; class if01{ public static void main(String[] args) {...