grep的使用:

一、grep一般格式:

grep [选项] 基本正则表达式 [文件]

这里的正则表达式可以为字符串。在grep命令中输入字符串参数时,最好将其用双引号括起来。调用变量时也可以使用双引号。在调用模式匹配事,应使用单引号。

二、grep常用选项:

-c只输出匹配行的计数。

-i不区分大小写(只用于单字符)。

-h查询多文件时不显示文件名。

-l查询多文件时只输出包含匹配字符的文件名。

-n显示匹配行及行号。

-s不显示不存在或无匹配文本的错误信息。

-v显示不包含匹配文本的所有行。

三、常用选项的使用:

1、 查询多个文件:

$grep  “hello” *.doc

num.doc:hello

sum.doc:hello world

说明在num.doc 和sum.doc中有字符串“hello“。

2、 行匹配:

$grep -c “123” *.doc

num.doc:2

sum.doc:2

说明在num.doc 和sum.doc中有字符串“123“各为两行。

3、 显示满足匹配模式的所有行数:

$grep –n “123” *.doc

num.doc:1:hao 123

num.doc:2:hao 123

sum.doc:2:hao 123

sum.doc:4:hao 1234

4、 显示所有不包含“123“的行:

$grep  -v “123” *.doc

num.doc:hello

num.doc:world

sum.doc:hello world

sum.doc:sui yue

5、 精确匹配:

如第三点,匹配“123”时,结果返回了“1234”的其它字符串。

$grep -n “123\>” *.doc

num.doc:1:hao 123

num.doc:2:hao 123

sum.doc:2:hao 123

6、 大小写敏感:

缺省情况下,grep是大小写敏感的,如果要查询大小写不敏感的字符串,必须

使用-i选项。

$grep -i “just” *.doc

num.doc:Just

num.doc:just

四、grep和正则表达式

1、模式范围:

$ grep  ‘48[34]’ mydata.doc

此命令在mydata.doc中匹配字符串“483”和“484”。

2、 不匹配行首:

$ grep  ‘^[^48]’ mydata.doc

此命令在mydata.doc中匹配除4或者8开头的行。

3、 设置大小写:

$ grep  ‘[Ss]ept’  mydata.doc

此命令在mydata.doc中匹配字符串“Sept”和“sept”。

4、匹配任意字符:

$ grep  ‘a…z’ mydata.doc

此命令在mydata.doc中匹配字符串以字符a开头和字符z结尾,中间为任意三个字符。

5、 模式出现的机率

$ grep ‘1\{2,\}’ mydata.doc

此命令说明数字1至少出现两次

awk的使用:

一、awk的调用格式:

awk的调用格式有三种:

第一种是命令行的方式,如下:

awk [-F field-separator] ‘commands’ input-file

[-F]域分隔符,是可选的,awk使用空格作为缺省的域分隔符。

第二种方法是将awk命令插入到一个文件,并使awk程序可以执行,然后用awk命令解释器作为脚本的首行,以便通过键入脚本名称来调用它。

第三种方法是将所有的awk命令插入一个单独文件,然后调用:

awk –f awk-script-file input-file

二、动作和模式

任何awk语句都有模式和动作组成。模式部分决定动作语句何时触发及触发事件。

模式包括两个特殊字段BEGIN和END.,BEGIN语句使用在任何文本浏览动作之前,之后文本浏览动作依据输入文件开始执行,END语句用来在awk完成文本浏览动作后打印输出文本中输出和结尾状态标志。实际动作在大括号内指明。

三、域和记录

awk执行时,其浏览域标记为$1,$2 ….$n.。这种方法称为域标识。

1、保存awk输出

第一种方法:

$awk ‘{print $0}’ mydata.txt >newfile.txt

显示屏上不会输出结果。

第二种方法:

$awk ‘{print $0}’ mydata.txt | tee newfile.txt

输出到文件中,同时显示在显示器上。

2、使用标准输入

第一种方法:使用awk脚本输入文件格式

$myawk.awk inputfile.txt

第二种方法:使用重定向

$myawk.awk < inputfile.txt

第三种方法:使用管道

$inputfile.txt | myawk.awk

3、打印所有记录

$awk ‘{print $0}’ myfile.txt

由于没有模式部分,只有动作部分,动作必须用花括号括起来。

Lisi 25 wuhan

Wangjian 33 shanghai

Caiming 55 shenzhen

4、打印单独记录

要用逗号分隔域

$awk ‘{print $1,$2}’ myfile.txt

Lisi 25

Wangjian 33

Caiming 55

5、打印报告头

$awk ‘BEGIN {print “Name Age\n******************“} {print $1”\t”$2}’ mfile.txt

Name Age

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

Lisi25

Wangjian 33

Caiming 55

6、打印信息尾

$awk ‘BEGIN {print “Name \n****** “} {print $1 } END {“end of report\n”}’ mfile.txt

sed的使用:

一、sed调用格式

sed调用格式有三种:

第一种命令行方式:

sed [option] ‘command’ inputfile

command要加单引号,也允许加双引号。

第二种使用sed脚本文件:

sed  [option]  –f  sed-script-file inputfile

第三种使用第一行具有sed命令解释器的sed脚本文件:

sed-script-file [option] inputfile

二、sed选项:

n 不打印:sed不写编辑行到标准输出,缺省为打印所有行。P命令可以用来打印编辑行。

c 下一命令是编辑命令。使用多项编辑时加入选项。

f 如果正在调用sed脚本文件,使用此选项。此选项通知sed脚本文件支持所有的sed命令。

三、sed常规用法:

1、 保存sed 输出

$ sed  ‘command’ inputfile > outfile

2、 sed在文件中查找文本的方式

sed浏览文件时,默认从第一行开始,有两种方法定位文本:

第一种:使用行号,可以用简单数字或是一个行号范围。

第二种:使用正则表达式。

Sed定位文本的一些方式,如下:

x x表示行号。

x,y 表示行号范围从x到y。

/pattern/ 查找包含模式的行。

x,/pattern 通过行号和模式查询匹配行。

x,y! 查找不包含指定行号x到y的行。

3、 sed编辑命令

p 打印匹配行

= 显示文件行号

a\ 在定位行号后附加拳文本信息

i\ 在定位行号后插入拳文本信息

d 删除定位行

c\ 用拳文本替换定位文本

s 使用替换模式替换相应模式

r 从另一个文件中读文本

w 写文本到一个文件

q 第一个模式匹配完成后推出或立即推出

l 显示与八进制ASCII代码造价的控制字符

{} 在定位行执行的命令组

n 从另一个文件中读文本下一行,并附加在下一行

g 将模式2粘贴到/pattern n/

y 传送字符

n 延续到下一输入行;允许跨行的模式匹配语句。

4、 使用p显示行

$sed -n ‘2p’ myfile.txt

Hello world!

-n选项,显示打印定位行。

5、 打印范围

$sed -n ‘1,3p’ myfile.txt

Hao 123

Hello world!

Ni hao ma?

打印1到3行。

6、 打印模式

$sed -n ‘/123/’p myfile.txt

Hao 123

7、 在指定行号匹配模式

$sed -n ‘5,/Hao/’p myfile.txt

Hao ma?

参考:

http://blog.csdn.net/u010666884/article/details/51381947(以上内容转自此篇文章)

http://blog.csdn.net/halazi100/article/details/42266885

http://blog.csdn.net/hzylmf/article/details/13712753

http://blog.csdn.net/u011068702/article/details/60882902

Linux文本过滤命令grep、awk、sed的更多相关文章

  1. linux相关(find/grep/awk/sed/rpm)

    如何查找特定的文件: find :在指定目录下查找文件 find -name "filename" :从当前目录查找文件 find / -name "filename&q ...

  2. 【linux】linux命令grep + awk 详解

    linux命令grep  +  awk 详解 grep:https://www.cnblogs.com/flyor/p/6411140.html awk:https://www.cnblogs.com ...

  3. linux管道命令grep命令参数及用法详解---附使用案例|grep

    功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  4. Linux查找命令:grep,awk,sed

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

  5. LINUX系统下的shell命令---grep、sed、awk

    1)grep文本过滤命令 1.grep基本认识 (Global  search  regular expression and  print  out the  line全局搜索研究正则表达时并显示出 ...

  6. linux 三剑客命令(grep,sed ,awk)

    grep 命令 :强大的文本’搜索’工具    1.grep   -n   'word'  file_name 在file_name文件中找到word所在的所有行并显示.-n 为显示行号.     2 ...

  7. 【Linux】linux中文本操作利器grep,awk,sed

    grep命令 grep(global search regular expression)是一种强大的文本搜索工具,它可以使用正则表达式搜索文本,并把匹配的行打印出来.平时搜索文本中内容的时候是非常方 ...

  8. Linux三剑客-grep || awk || sed

    grep是一个强大的文本搜索工具 命令格式: grep [option] pattren file -a  将二进制文档以文本方式处理 -c  计算找到的符合行的次数 -i  忽略大小写 -n  顺便 ...

  9. 获取文本中你须要的字段的 几个命令 grep awk cut tr sed

    1,grep 2,awk 3,cut 4,tr 5,sed 实例1 获取本地IP地址 /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v ine ...

随机推荐

  1. 【视觉SLAM14讲】ch4心得与课后题答案【仅供参考】

    答案: Q1:验证SO(3) SE(3) Sim(3)关于乘法成群 SO(3) : 由P64最开始可知,乘法代表了旋转,而SO(3)是旋转矩阵的集合, SE(3)  Sim(3)  同理(最基础的部分 ...

  2. 安卓context(一)

    最近看了一下深入安卓内核,毫无安卓基础的我一头深入不可自拔,看的是云里雾里,第一遍看到一半左右似乎开始失去了效率. 现在开始第二遍,并对看过的重要知识点以个人的理解进行梳理(不免有错的地方,好心人请告 ...

  3. atom-安装插件

    1. 安装git. 2. 安装node环境,其中集成了npm. 3. 启动git 键入命令: cd User/[yourname]/.atom/packages 进入packages目录. 4. 下载 ...

  4. [USACO06NOV]玉米田Corn Fields (状压$dp$)

    题目链接 Solution 状压 \(dp\) . \(f[i][j][k]\) 代表前 \(i\) 列中 , 已经安置 \(j\) 块草皮,且最后一位状态为 \(k\) . 同时多记录一个每一列中的 ...

  5. 51Nod 1317 相似字符串对

    题目链接 分析: 考虑两个串的关系:$A+C=C+B$,我们观察可以发现,$A$和$B$是循环同构的,如果$A=G+H$,那么$B=H+G$,证明略长懒得写了... 我们知道$A$串有$K^N$种,所 ...

  6. Android APK瘦身方法小结

    众所周知,APP包体的大小,会影响推广的难度,用户不太喜欢下载太大的APP,同类型同等功能的APP中往往是包体小的更受用户的青睐,所以降低包体是一项非常必要的事情,也是最近公司的APP需要降低包体,所 ...

  7. CSS技巧----DIV+CSS规范命名大全集合

    网页制作中规范使用DIV+CSS命名规则,可以改善优化功效特别是团队合作时候可以提供合作制作效率,具体DIV CSS命名规则CSS命名大全内容篇. 常用DIV+CSS命名大全集合,即CSS命名规则 D ...

  8. 2018多校第三场 hdu6331 M :Walking Plan

    题目链接 hdu6331 自我吐槽,这场多校大失败,开局签到因输入输出格式写错,wa了3发.队友C题wa了1个小时,还硬说自己写的没错,结果我随便造了个小数据,他都没跑对.然后跑对了后又进入了无限的卡 ...

  9. What does this bit-manipulating function do?

    http://stackoverflow.com/questions/8637142/what-does-this-bit-manipulating-function-do unsigned long ...

  10. CString::GetLength()获得字节数

    按照MSDN的说吗,在选用MBCS多字节字符串编码时,该方法会得到正确的字节数.此时没有问题. For multibyte character sets (MBCS), GetLength count ...