grep的使用:

一、grep通常格式:

grep基本正则表达式

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

二、grep常用选项:

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

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

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

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

-n显示匹配行及行号。

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

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

三、常用选项的使用:

1、查询多个文件:

$grep“hello”*.doc

num.doc:hello

sum.doc:helloworld

说明在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:hao123

num.doc:2:hao123

sum.doc:2:hao123

sum.doc:4:hao1234

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

$grep-v“123”*.doc

linux管道命令 grep_grep基本正则表达式使用_grep常用选项详解

num.doc:hello

num.doc:world

sum.doc:helloworld

sum.doc:qièyue

5、精确匹配:

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

$grep-n“123>”*.doc

num.doc:1:hao123

num.doc:2:hao123

sum.doc:2:hao123

6、大小写敏感:

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

使用-i选项。

$grep-i“just”*.doc

num.doc:Just

num.doc:just

四、grep和正则表达式

1、模式范围:

$grep‘48’mydata.doc

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

2、不匹配行首:

$grep‘^’mydata.doc

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

3、设置大小写:

$grep‘ept’mydata.doc

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

4、匹配任意字符:

$grep‘a…z’mydata.doc

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

5、模式出现的概率

grep基本正则表达式使用_grep常用选项详解_linux管道命令 grep

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

此命令说明数字1起码出现两次

——————————————————————————--

awk的使用:

一、awk的调用格式:

awk的调用格式有三种:

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

awk

-Ffield-separator

‘commands’input-file

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

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

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

awk–fawk-script-fileinput-file

二、动作和模式

任何awk句子都有模式和动作组成。模式部份决定动作句子何时触发及触发风波。

模式包括两个特殊数组BEGIN和END.,BEGIN句子使用在任何文本浏览动作之前linux解压rar,然后文本浏览动作根据输入文件开始执行,END句子拿来在awk完成文本浏览动作后复印输出文本中输出和结尾状态标志。实际动作在大括弧内指明。

三、域和记录

awk执行时,其浏览域标记为$1,$2….$n.。这些方式称为域标示。

1、保存awk输出

第一种方式:

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

显示屏上不会输出结果。

第二种方式:

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

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

2、使用标准输入

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

$myawk.awkinputfile.txt

第二种方式:使用重定向

$myawk.awk<inputfile.txt

第三种方式:使用管线

grep常用选项详解_grep基本正则表达式使用_linux管道命令 grep

$inputfile.txt|myawk.awk

3、打印所有记录

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

因为没有模式部份,只有动作部份linux管道命令 grep,动作必须用花括弧括上去。

Lisi25wuhan

Wangjian33shanghai

Caiming55shenzhen

4、打印单独记录

要用冒号分隔域

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

Lisi25

Wangjian33

Caiming55

5、打印报告头

$awk‘BEGIN{print“NameAgen******************“}{print$1”t”$2}’mfile.txt

NameAge

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

Lisi25

Wangjian33

Caiming55

6、打印信息尾

$awk‘BEGIN{print“Namen******“}{print$1}END{“endofreportn”}’mfile.txt

——————————————————————————--

sed的使用:

一、sed调用格式

sed调用格式有三种:

第一种命令行形式:

sed‘command’inputfile

linux管道命令 grep_grep常用选项详解_grep基本正则表达式使用

command要加单冒号,也容许加双冒号。

第二种使用sed脚本文件:

sed–fsed-script-fileinputfile

第三种使用第一行具有sed命令类库的sed脚本文件:

sed-script-fileinputfile

二、sed选项:

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

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

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

三、sed常规用法:

1、保存sed输出

$sed‘command’inputfile>outfile

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

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

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

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

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

xx表示行号。

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

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

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

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

3、sed编辑命令

p复印匹配行

=显示文件行号

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

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

d删掉定位行

linux管道命令 grep_grep常用选项详解_grep基本正则表达式使用

c用拳文本替换定位文本

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

r从另一个文件中读文本

w写文本到一个文件

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

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

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

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

g将模式2粘贴到/patternn/

y传送字符

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

4、使用p显示行

$sed-n‘2p’myfile.txt

Helloworld!

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

5、打印范围

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

Hao123

Helloworld!

Nihaoma?

复印1到3行。

6、打印模式

$sed-n‘/123/’pmyfile.txt

Hao123

匹配

7、在指定行号匹配模式

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

Haoma?

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复