文本处理grep命令
this is a words file.
words words to be
, , , , , , , , , ,
beginning linux programming 4th edition this is a line containing pattern
,.<>?;';;;' [] {= = \ \ \| -__!@#$%^&*() !@#$$%%^&*(()*&%@(#$%)) www.regexper.com
www.google.com
www.baidu.com
www.redhat.com
我们的测试文件名字叫 n,如上所示,共13行。
grep按行检索,按行输出。
1, 搜索特定模式的行
[lizhen@dhcp-- shell]$ grep words n
this is a words file.
words words to be
[lizhen@dhcp-- shell]$
2,单个grep命令可以对多个文件进行检索
[lizhen@dhcp-- shell]$ grep words n n1 n2
n:this is a words file.
n:words words to be
n1:this is a words file.
n1:words words to be
n2:this is a words file.
n2:words words to be
[lizhen@dhcp-- shell]$
3,使用正则表达式,添加-E选项,或者直接egrep (在terminal下可以看到这些被匹配的部分 是被红色 特殊显示的,这里显示的是被匹配到的 行)
[lizhen@dhcp-- shell]$ egrep "[a-o]+" n
this is a words file.
words words to be
beginning linux programming 4th edition
this is a line containing pattern
www.regexper.com
www.google.com
www.baidu.com
www.redhat.com
[lizhen@dhcp-- shell]$
4,只输出文件中匹配到的文本部分呢,使用-o
[lizhen@dhcp-- shell]$ grep words n
this is a words file.
words words to be
[lizhen@dhcp-- shell]$ grep words n -o
words
words
words
[lizhen@dhcp-- shell]$
5,打印除包含match_pattern行之外的所有行,使用-v
[lizhen@dhcp-- shell]$ grep words n -v
, , , , , , , , , ,
beginning linux programming 4th edition this is a line containing pattern
,.<>?;';;;' [] {= = \ \ \| -__!@#$%^&*() !@#$$%%^&*(()*&%@(#$%)) www.regexper.com
www.google.com
www.baidu.com
www.redhat.com
[lizhen@dhcp-- shell]$
6,统计文件包含匹配字符串的行数,使用-c (-c只统计匹配到的行数,并不会统计匹配到的次数)
[lizhen@dhcp-- shell]$ grep words n -c [lizhen@dhcp-- shell]$ grep words n
this is a words file.
words words to be
[lizhen@dhcp-- shell]$
7,统计匹配到的字符串的数量,使用-o | wc -l
[lizhen@dhcp-- shell]$ grep -o words n | wc -l [lizhen@dhcp-- shell]$ grep words n
this is a words file.
words words to be
[lizhen@dhcp-- shell]$
8,打印出包含匹配字符串的行号,使用-n
[lizhen@dhcp-128-93 shell]$ grep w -n n n1
n:1:this is a words file.
n:2:words words to be
n:10:www.regexper.com
n:11:www.google.com
n:12:www.baidu.com
n:13:www.redhat.com
n1:1:this is a words file.
n1:2:words words to be
n1:10:www.regexper.com
n1:11:www.google.com
n1:12:www.baidu.com
n1:13:www.redhat.com
[lizhen@dhcp-128-93 shell]$
9 打印模式匹配所位于的字符或字节偏移,使用-b -o
[lizhen@dhcp-- shell]$ grep words n
this is a words file.
words words to be
[lizhen@dhcp-- shell]$ grep words -b -o n
:words
:words
:words
[lizhen@dhcp-- shell]$
10,搜索多个文件并找出文本位于哪一个文件中,使用-l
[lizhen@dhcp-- shell]$ grep words n n1
n:this is a words file.
n:words words to be
n1:this is a words file.
n1:words words to be
[lizhen@dhcp-- shell]$ grep words -l n n1
n
n1
[lizhen@dhcp-- shell]$
使用-L 大写的L字符,取相反的结果
[lizhen@dhcp-- shell]$ grep words n n1
n:this is a words file.
n:words words to be
n1:this is a words file.
n1:words words to be
[lizhen@dhcp-- shell]$ grep words -l n n1
n
n1
[lizhen@dhcp-- shell]$ grep words -L n n1
[lizhen@dhcp-- shell]$
11,递归搜索文件,使用-R -n (-n选项表示显示所在文件名:行号)
[lizhen@dhcp-- shell]$ grep words . -R -n
./n::this is a words file.
./n::words words to be
./n1::this is a words file.
./n1::words words to be
./n2::this is a words file.
./n2::words words to be
[lizhen@dhcp-- shell]$
12,忽略样式中的大小写,使用-i
[lizhen@dhcp-- shell]$ grep WORDS -i n
this is a words file.
words words to be
[lizhen@dhcp-- shell]$
13,使用grep匹配多个样式,使用-e
[lizhen@dhcp-128-93 shell]$ grep -e words -e www -o n
words
words
words
www
www
www
www
[lizhen@dhcp-128-93 shell]$
14,使用样式文件,利用grep逐行读取样式文件,grep会将匹配到的行输出
[lizhen@dhcp-- shell]$ grep -f f n
this is a words file.
words words to be
, , , , , , , , , , www.regexper.com
www.google.com
www.baidu.com
www.redhat.com
[lizhen@dhcp-- shell]$
15,在grep搜索中指定或排除文件
# grep "main()" . -r --include *.{c,cpp}
#grep "main()" . -r --exclude "readme"
16,grep 的静默输出,使用-q
#########################################################################
# File Name: begin.sh
# Author: lizhen
# mail: lizhen_ok@.com
# Created Time: Wed May :: PM CST
#########################################################################
#!/bin/bash
if [ $# -ne ]
then
echo "usage: $0 match_text filename"
exit
fi match_text=$
filename=$
grep -q "$match_text" $filename if [ $? -eq ]
then
echo "The text exists in the file"
else
echo "text does not exist in the file"
fi echo "done!"
[lizhen@dhcp-- shell]$ ./begin.sh words n
The text exists in the file
done!
[lizhen@dhcp-- shell]$
17,打印匹配行之前或之后的行,使用-B,-A,-C选项
[lizhen@dhcp-- shell]$ grep www -B n
this is a line containing pattern
,.<>?;';;;' [] {= = \ \ \| -__!@#$%^&*() !@#$$%%^&*(()*&%@(#$%)) www.regexper.com
www.google.com
www.baidu.com
www.redhat.com
[lizhen@dhcp-- shell]$ grep www -B n www.regexper.com
www.google.com
www.baidu.com
www.redhat.com
[lizhen@dhcp-- shell]$ grep www n
www.regexper.com
www.google.com
www.baidu.com
www.redhat.com
[lizhen@dhcp-- shell]$
[lizhen@dhcp-- shell]$ grep words -A n
this is a words file.
words words to be
, , , , , , , , , ,
[lizhen@dhcp-- shell]$
[lizhen@dhcp-- shell]$ grep n [lizhen@dhcp-- shell]$ grep n -C
beginning linux programming 4th edition [lizhen@dhcp-- shell]$
文本处理grep命令的更多相关文章
- Linux命令-文件文本操作grep
文件文本操作 grep 在文件中查找符合正则表达式条件的文本行 cut 截取文件中的特定字段 paste 附加字段 tr 字符转换或压缩 sort 调整文本行的顺序,使其符合特定准则 uniq 找出重 ...
- 【OS_Linux】三大文本处理工具之grep命令
grep(global search regular expression(RE) and print out the line,整行搜索并打印匹配成功的行 语法:grep [选项] 搜索词 ...
- linux grep命令
linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressio ...
- linux管道命令grep命令参数及用法详解---附使用案例|grep
功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...
- grep 命令详解
[root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename 选项与参数: -a :将 binary 文件以 text 文件的方式搜寻数据 - ...
- grep 命令操作
linux grep命令 1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressi ...
- Linux命令(23)grep命令的使用
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正 ...
- 每天一个linux命令(39):grep 命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...
- 由一条Linux的grep命令说起
今天在开发的时候,看到同事使用了这样的一条linux命令 grep 'class YourClass' -rwi * |grep -v svn 想到了 grep命令的,几个参数. -r 明确要求搜索子 ...
随机推荐
- LeetCode ZigZag Conversion(将字符串排成z字型)
class Solution { public: string convert(string s, int nRows) { string a=""; int len=s.leng ...
- java Vamei快速教程12 类型转换和多态
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们之前使用类创造新的类型(type),并使用继承来便利我们创建类的过程.我将在这 ...
- java常用框架总结
一.SpringMVC http://blog.csdn.net/evankaka/article/details/45501811 Spring Web MVC是一种基于Java的实现了Web MV ...
- 传入指定字段名称就可以排序的EF写法
private static IQueryable<T> SetQueryableOrder<T>(this IQueryable<T> query, string ...
- POJ 3233 Matrix Power Series (矩阵分块,递推)
矩阵乘法是可以分块的,而且幂的和也是具有线性的. 不难得到 Si = Si-1+A*Ai-1,Ai = A*Ai-1.然后矩阵快速幂就可以了. /*************************** ...
- POJ 3421 X-factor Chains(构造)
这条链依次乘一个因子.因为n<2^20,sqrt(n)分解因子,相同的因子相对顺序取一个. 组合公式计算一下就好. #include<cstdio> #include<iost ...
- 【BZOJ1040】[ZJOI2008] 骑士(基环外向树DP)
点此看题面 大致题意: 给你一片基环外向树森林,如果选定了一个点,就不能选择与其相邻的节点.求选中点的最大权值和. 树形\(DP\) 此题应该是 树形\(DP\) 的一个升级版:基环外向树\(DP\) ...
- python基础一 day17 初识递归
#递归函数 # 了解什么是递归 : 在函数中调用自身函数 # 最大递归深度默认是997/998 —— 是python从内存角度出发做得限制 # 能看懂递归 # 能知道递归的应用场景 # 初识递归 —— ...
- runtime消息转发机制
Objective-C 扩展了 C 语言,并加入了面向对象特性和 Smalltalk 式的消息传递机制.而这个扩展的核心是一个用 C 和 编译语言 写的 Runtime 库.它是 Objective- ...
- git Bash 学习
,ranh新建一个本地仓库并与github连接的方法 注:该终端也具有按tab键补全功能,应该合理应用 1. 新建一个文件夹,并将git bash的位置转到相应文件夹下(cd 命令转移) 2.git ...