linux中文本文件过滤搜索,Linux命令(八)过滤文本 grep

grep 命令介绍

grep是一个强大的文本搜索工具命令,用于查找文件中符合指定格式的字符串,支持正则表达式。如不指定任何文件名称,或是文件名为 -,则gerp命令从标准输入设备中读取数据。

grep 家族包括grep egrep 和 fgrep。 egrep 和 fgrep 命令只跟 grep 有很小的不同。 egrep 是 grep 的扩展 , fgrep 就是 fixed grep 或 fast grep,该命令使用任何正则表达式中的元字符表示其自身的字面意义,不在特殊。其中 egrep 就等同于 " grep -E" ,fgrep 等同于"grep -F"。(有点晕。。) Linux中的 grep 功能强大,支持很多参数,可以方便地用来进行文本处理工作。

grep 命令常用参数说明

-a不要忽略二进制数据

-A 除了显示符合条件的那一行之外,并显示该列之后的内容

-b在显示符合范本样式的那一列之前,标示出该列第一个字符的位编号

-B除了显示符合条件的那一行之外,并显示该列之前的内容

-c计算符合结果的行数

-C除了显示符合条件的那一行之外,并显示该列之前后的内容

-e 按指定的字符串查找

-E按指定的字符串指定的正则查找

-f指定范本文件,其内容含有一个或多范本样式

-F将范本样式视为固定的字符串列表

-G将范本样式视为普通的表示法来用

-h在显示符合范本样式的那一列之前,不标示该列所属的文件名称

-H在显示符合范本样式的那一列之前,标示该列所属的文件名称

-i忽略字符大小写

-l列出文件内容符合指定的范本样式的文件名称

-L列出文件内容不符合指定的范本央视的文件名称

-n在显示符合范本样式的那一列之前,标示出该列的列数编号

-q不显示任何信息

-r在指定路径中递归查找

-s不显示错误信息

-v反向查找

-V显示版本信息

-w匹配整个单词

-x只显示全列符合的列

--help在线帮助

grep 单独使用时至少有两个参数,如少于两个参数,grep 会一直等待,直到该程序被中断。如果遇到这样的情况,可以使用 Ctrl + c 终止。 默认情况下只搜索当前目录,如果递归查找子目录,可使用-r选项。

grep命令使用方法

在指定的文件中查找字符串:

grep root /etc/passwd 在 /etc/passwd 中查找 root 字符串

结合管道一起使用:

cat /etc/passwd | grep root

grep mysql my.cnf | grep datadir

查找符合条件的内容所在的行号:

grep -n root /etc/passed

在 nginx.conf 中查找包含 listen 的行号并打印出来:

grep listen nginx.conf

查找指定字符串:

grep uuid test.txt 区分大小写

grep UUID test.txt 区分大小写

grep -i uuid test.txt 不区分大小写

列出匹配字符串的文件名:

grep -l uuid test.txt

列出不匹配字符串的文件名:

grep -L uuid test.txt

匹配整个单词:

gerp -w UU test.txt

grep -w UUID test.txt

除了显示匹配的行,分别显示该行上下文的 n 行:

grep -C1 UUID test.txt 此处 n = 1 ,跟在 -C 参数后面

按正则表达式查找指定字符串:

grep -n -E "^[a-z]+" test.txt

grep -n -E "^[^a-z]+" test.txt

grep -E "datadir | socket" my.cnf

递归查找:

grep -r var . | head -3

在当前的目录下查找文件中的字符串hello:

grep -rn “hello”

grep 正则参数说明

^指定匹配字符串的行首

$指定匹配字符串的结尾

*表示0个以上的字符

+表示1个以上的字符

\去掉指定字符的特殊含义

^指定行的开始

$指定行的结束

.匹配一个非换行的字符

*匹配零个或多个先前字符

[]匹配一个指定范围内的字符

[^]匹配一个不在指定范围内的字符

\(..\)标记匹配字符

> 指定单词的结束

x{m}重复字符 x,m 次

x{m},重复字符 x, 至少 m 次

x{m,n}重复字符x, 至少 m 次,不多于 n 次

w匹配文字和数字字符,也就是 [A-Za-z0-9]

b单词锁定符

+匹配一个或多个先前的字符

?匹配零个或多个先前的字符

a|b|c匹配 a 或 b 或 c

()分组符号

[:alnum:]文字数字字符

[:alpha:]文字字符

[:digit:]数字字符

[:graph:]非空格、控制字符

[:lower:]小写字符

[:cntrl:]控制字符

[:print:]非空字符(包括空格)

[:punct:]标点符号

[:space:]所有空白字符(新行,空格,制表符)

[:upper:]大写字符

[:xdigit:]十六进制数(0-9,a-f,A-F)

【转】如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等

如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等   你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或在里面搜索,或其它操作——一些无法并 ...

Linux命令(1)grep

开发过程中,与测试运维中 逐渐学习 运维常用的Linux 命令: 转自https://www.cnblogs.com/peida/archive/2012/12/17/2821195.html Lin ...

linux命令之查找find &grep

区别:find找目录下的文件:find+目录路径+条件表达式,grep找文件中的行:grep+匹配正则表达式+文件名 find命令 find命令的一般形式 find命令的常用选项及实例 find与xa ...

<转>如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等

原文链接:http://www.vaikan.com/use-multiple-cpu-cores-with-your-linux-commands/ 你是否曾经有过要计算一个非常大的数据(几百GB) ...

转摘--如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等

http://www.vaikan.com/use-multiple-cpu-cores-with-your-linux-commands/ 你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或 ...

如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等(转)

你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或在里面搜索,或其它操作——一些无法并行的操作.数据专家们,我是在对你们说.你可能有一个4核或更多核的CPU,但我们合适的工具,例如 grep, ...

Linux命令(23)grep命令的使用

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正 ...

Linux命令(1)- grep

1.grep 功能:查找文件里符合条件的字符串. 语法:grep [-abcEFGhHilLnqrsvVwxy][-A][-B][-C

每天一个Linux命令(34)grep命令

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...

随机推荐

oracle 函数大全及运算符

http://blog.csdn.net/huangwuyi/article/details/7407820 一.函数 1.取整  mod(2,10)=2 2.取整 trunc(12/10)=1 3. ...

IE8/9的console之坑

这几天遇到个深坑,在改别人代码时,发现ajax在ie8下请求不成功.清理了缓存后,可以请求成功!(清理缓存只是表象而已,后文说原因) 后来慢慢看代码,发现ajax成功回调了!在success回调里,我 ...

获取Json数据某节点的值

时间匆忙,直接上代码,回家还得做清蒸鱼呢! #region 获取Json字符串某节点的值 /// /// 获取Json字符串某节点的值 ///

bower install和cnpm install

bower install :主要是安装前端的相关框架,如Boostarp,Angular等 cnpm install :主要是安装后端的,如express等

做web项目时对代码修改后浏览器端不生效的应对方法(持续更新)

做web项目时,经常会遇到修改了代码,但浏览器端没有生效,原因是多种多样的,我会根据我遇到的情况逐步更新解决办法 1.运行的时候采用debug模式,一般情况下使用项目部署按钮右边那个按钮下的tomca ...

phpstrom 的一些常用设置

phpstrom是php开发者使用率比较高的一款IDE,也是我使用的比较多的一款,以免以后忘记了自己熟悉的设置,在此做一些记录. 1.主题的设置   可以在http://www.phpstorm-th ...

[Spark][Flume]Flume 启动例子

Flume 启动例子: flume-ng agent --conf /etc/flume-ng/conf --conf-file /etc/flume-ng/conf/flume.conf --nam ...

BZOJ3156 防御准备 动态规划 斜率优化

原文链接http://www.cnblogs.com/zhouzhendong/p/8688187.html 题目传送门 - BZOJ3156 题意 长为$n$的序列$A$划分,设某一段为$[i,j] ...

(erase) Mispelling4 hdu1984

Mispelling4 Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值