文档库 最新最全的文档下载
当前位置:文档库 › Awk学习笔记2010修改版

Awk学习笔记2010修改版

Awk学习笔记2010修改版
Awk学习笔记2010修改版

AWK学习笔记 (1)

1.AWK简介 (1)

2.AWK编程模型 (2)

3. 常量与转义符 (3)

4. 变量 (3)

4.1用户定义变量 (3)

4.2系统变量 (4)

4.3字段变量 (4)

5 数组 (5)

6 操作符 (5)

7 流程控制 (6)

8 函数 (7)

8.1 算术函数 (7)

8.2 字符串函数 (7)

8.3 字节处理函数 (8)

8.4 时间函数 (8)

8.5 用户自定义函数 (9)

9 输入输出 (9)

9.1 输入 (9)

9.2 输出 (10)

10 总结 (10)

11. 参考文献 (10)

AWK学习笔记

1.AWK简介

AWK是Alfred V.Aho, Peter J.Weinberger,Brian W.Kerninghan三人在1977设计和实施的,最初是为了试验Unix中的grep和sed工具怎样可以一般化地在文本之外还能处理数据(grep和sed主要是文本处理工具,但AWK同时善于处理文本与数据)。AWK名字的来源是创造此语言的三个人的名字首字母缩写。它的主要来源是grep, sed和C。后继者主要有Perl。

AWK非常适合于处理格式化的文本和数据,比如改变数据的格式、验证其合法性、寻找某些属性的项、数字求和、输出数据报表等。数据的结构化越强,使用AWK会越方便。相比于sed,它有字段(sed只有行而没有内置的字段模型)和数字处理功能。相比于C和Perl,由于它自动化了某些处理流程(比如读取文件和分割字段),可以使得某些任务以比C 和Perl少得多的代码来完成。

AWK(相对于Perl)的不足:一是各种复杂的数据结构难以实现;二是对Unicode的支持不好。

2.AWK编程模型

AWK程序的基本使用语法如下:

awk[-v var=value] -Fre'pattern{ action}' var=value datafile(s)

awk[-v var=value] -Fre-f scriptfile var=value datafile(s)

用命令行与用脚本文件(scriptfie)是等价的。一般来说,若pattern、action的代码量比较大,倾向于使用脚本文件。

对于以上语法说明如下:

●-v 选项定义的变量在脚本运行之前即存在,可以在脚本的BEGIN流程中被调用;

●命令行参量(不用-v定义的)只有到输入的第一行读入时才有效,即其在BEGIN流程

中无效;

●-F选项将字段分割符(FS)设为一个正则表达式re;

●datafile(s)可以是单个文件,也可以是多个文件,可使用正则表达式)。如果用“-”

(不包括引号)表示从命令行输入。

●命令行输入‘pattern{action}’时单引号是必不可少的!不要忘记。pattern和action

都是可选的,但是不能都省略。省略pattern时默认匹配所有行;省略action时默认为输出整行。为了分别pattern和action, action需要用{}括起来。

脚本文件的一般格式为:

BEGIN{

}

pattern1 { action1 }

pattern2 { action2 }

END{

}

这也说明了AWK的编程模型:程序开始处理BEGIN流程(一般是设置分隔符、定义变量以及输出信息行等),然后进入主循环,读入数据每一行,本行数据设为$0, 行数为NR(某一文件的行数为FNR),同时根据FS变量将$0切分为NF个字段,分别用$1,$2,…,$NF标识。程序对每一行用pattern进行匹配,若匹配上则运行action。在所有行处理完后,程序将处理END流程(一般是进行后期处理,输出综合结果等)。

说明:

●程序默认的字段分割符(FS)是“[ \t]+”(Tab或空格),输出分割符(OFS)是“”,

(空格),默认记录分隔符(RS)是“\n”,可根据需要在命令行或BEGIN中修改;

●pattern可以是以下四种格式:

(1)表达式(expression). 在表达式为真时执行action.

(2)正则表达式(/regular expression/), 正则表达式匹配上时执行action.

(3)复合模式(compound pattern),用&&(AND), ||(OR),!(NOT)和括号组合出的模式,组合模式为真时执行action.

(4)范围模式(pattern1,pattern2),从pattern1匹配上的行,直到pattern2匹配上的行,包括这两行。如果pattern2一直没有匹配上,则到文件的末尾。 action默认一行一条指令,可包括多行。如果需要在一行中包括多个语句,需要用分号(;)分割开。但是一行一个语句则不需要加分号。这里有与C语言相同又有不同的地方,请注意区别。

3. 常量与转义符

AWK的常量有字符由字符串常量与数值常量组成,字符串常量含引号,而数值常量没有。AWK的转义符如下:

符号描述

\a警告字符,通常是ASCII BEL字符

\b退行

\f Formfeed

\n换行

\r回车

\t TAB

\ddd八进制

\c任何字符c比如\"代表"

4. 变量

AWK的变量包括用户定义变量(User-defined Variables)、系统变量(System Variables)和字段变量(Field Variables)。分别说明如下:

4.1用户定义变量

AWK的变量不需要声明,也不需要初始化,直接使用。每一个变量同时有一个字符值和数值,AWK根据上下文环境决定作为数值或字符串处理,这是A WK极其独特之处。AWK自动将变量初始化为空值,如果用作数字将作为0。如果需要强制使用字符串,可使用number “”(空格在AWK中是字符串连接符),若需要强制用作数值,可以用string + 0。

另外应注意,在AWK中,$表示字段,用户变量不需要加$,这是AWK与shell或者Perl不同之处!在shell中,变量定义时不加$,再次引用时则需要用$,而在Perl中,无论定义和引用时都需要加$(Perl中$表示标量,另有@和%符号表示数组和Hash变量)。

4.2系统变量

AWK中包括两种系统变量:默认值可被改变的变量和处理过程中变量。AWK的系统变量列表如下:

变量意义默认值

FS字段分割符“[ \t]+”

OFS输出字段分隔符“”

RS记录分割符”\n”

ORS输出记录分隔符”\n”

OFMT输出数字格式”%.6g”CONVFMT控制数值向字符串转换”%.6g”

NF字段数-

-

NR当前输入记录数(总数),只有到END时,NR

才等于总记录数

FNR当前文件的相对记录数

FILENAME当前输入文件名

ARGC命令行参数数目

ARGV命令行参数数组

ENVIRON环境变量数组

RSTART match()匹配到的初始位置

RLENGTH match()匹配到的字符串长度

SUBSEP数组分隔符。将(I,J) 转换为I SUBSEP J, 模拟多

维数组用

注意:

●ARGV数组由ARGV[0] ,…,ARGV[ARGC-1]组成,第一个元素指标是0而不是1。这

与AWK中的一般数组不同,而与C一致。

●ENVIRON数组在shell与AWK的交互中非常有用。使用ENVIRON[“PARA_NAME”]

来获取环境变量$PARA_NAME的值,其中的引号””不可少!

4.3字段变量

从$1,$2一直到$NF,整行用$0标识。注意,如果$0被赋予新值,所有的$1, $2,..和NF 都会被重新计算。同样,若$i,被改变,$0将用OFS重新计算。

5 数组

AWK提供一维数组来存储字符串和数值。数组和数组元素不需要声明,也不需要指定元素个数。A WK特别之处是数组下标总是字符串型的,所以AWK数组总是关联数组(Associative Arrays),相当于Perl的Hash Array。这一点是AWK区别于C及Perl之处。C的数组下标是整数,Perl分别普通数组和Hash数组。

遍历数组的命令是:

for (variable in array)

statement

注意数组下标的输出次序是依赖于AWK的实现的!

测试数组中是否存在某元素的命令是:

if ( subscript in A )

注意如果用if (A[subscript] == “”) 命令,将可能创建一个新元素!

删除数组元素的命是:delete array[subscript]

用for ( i in array)delete array[i] ; 可以删除所的有元素,但是新版的gawk可以用简单的delete array;命令删除整个数组。

AWK的多维数组是用一维数组来模拟的。比如,可以用

for (i = 1; i<=10; i++)

for (j= 1; j<=10; j++)

arr[i, j ] = 0

if ((i, j) in arr) 方式来使用多维数组。AWK实际用arr[i SUBSEP j]来代替arr[i,j]。

如果要实现多维数组的循环,可以采取以下方式:

for (k in arr) {

split(k, x, SUBSEP)

i=x[1]

j=x[2]

…(i,j)

}

6 操作符

AWK的操作符基本与C语言相同,但也有些例外。按优先级从低至高列表如下:操作符号说明赋值= += -= *= /= %= ^=^=是特别的操作符,C没有

操作符号说明条件?:

逻辑或||

逻辑与&&

数组元素in if (i in a )

匹配~ !~C没有

关系< <= == != >= >

字符串连接(b

加减+-

乘除求模* / %

单目加减+ --x 正负

逻辑非!!$1

开方^ (**)有些现代版本的awk可以用**

自加、自减++

字段运算符$

括号()

7 流程控制

AWK的流程控制基本沿用C的流程控制语句,但是没有do until, switch语句。AWK的流程控制语句如下:

{ statement }

if (expression) statement

if (expression ) statement1else statment2

while (expression ) statement

for(expression1; expression2;expression3) statement

do statement while (expression)

for (variable in array) statement(这是AWK特别的对于数组中每个变量循环)

break (退出while for do循环)

continue (进入到下一while for do 循环)

next(AWK特别的指令,开始进入下一主输入循环,处理下一行记录,非常有用)

exit

exit expression (马上进入END流程;如果在END流程内,结束程序,以expression值为返回值)

8 函数

AWK的函数包括系统函数和自定义函数。系统函数又可分为算术函数和字符串函数8.1 算术函数

函数说明

cos(x)

sin(x)

int(x)求整,截去而不是四舍五入

log(x)

exp(x)

sqrt(x)

atan2(y,x)Argtan(y/x)

rand()

srand()

8.2 字符串函数

函数说明

index(s,t)返回t在s中的第一个位置,如果没找到返回0 length(s)返回s的字符个数

substr(s,p)返回s中从p开始的所有字符串

substr(s,p,n)返回s中从p开始的n个字符

比如substr(“abcd”,1, 3)将得到“abc”

gsub(r,s)替换$0中所有的正则表达式r为字符串s,返回替换数gsub(r,s,t)替换字符串t中所有的正则表达式r为字符串s

sub(r,s)替换$0中左边最长的匹配r的子串

sub(r,s,t)替换t中左边最长的匹配r的子串

split(s,a)用FS切割字符串s为数组a,返回字段数

split(s,a,fs)用fs切割字符串s为数组a,返回字段数

如使用split(“7/4/76”, arr, “/”)后,

arr[“1”]为7, arr[“2”]为4,arr[“3”]为76

spintf(fmt,expr-list)格

8.5 用户自定义函数

用户定义函数的格式是:

function name(parameter-list){

statement

}

注意:AWK自定义函数的变量是带值传递,数组是以引用方式传递。另一特别的地方是没在参数列表的变量是全局的,因此定义函数私有变量的方式是将其加入到变量列表中。

比如将字符型IP转换为整型IP的函数如下:

function aton(char_ip,int_ip, arr){

split(char_ip, arr, ".")

int_ip = (((arr[1] * 256 + arr[2]) * 256) + arr[3]) * 256 + arr[4]

return int_ip

}

9 输入输出

9.1 输入

AWK的输入可以通过命令行文件输入,也有通过getline函数输入。

getline的使用方法如下:

函数说明

getline$0, NF, NR, FNR

getline var var, NR, FNR

getline

getline var

cmd | getline$0, NF

cmd | getline var var

注意:

●while(getline <”file”)是危险的使用循环的方式,可能进入死循环(如果”file”不存在的

话。安全的使用方式是while( getline <”file” > 0)。

●处理文件时应注意A WK的RS默认为”\n”,它不处理Windows格式文件的“\r\n”中

的”\r”,所以最后一个字段会带一个”\r“。这在输出时为产生非常怪异的结果。因此在处理Windows传过来的文件时最好先用dos2unix命令转一下文件格式。

9.2 输出

AWK的输出语句如下:

函数说明

print在标准输出输出$0

print expression, expression, …以OFS分隔输出expressions

print expression,

输出到文件filename中

expression, …>filename

print expression,

追加到文件filename中

expression, …>>filename

输出到command的标准输入中

print expression, expression, …

|command

printf(format,expression,

带格式输出,格式定义与C相同

expression, …)

printf(format,expression,

带格式输出

expression, …) >filename

printf(format,expression,

带格式输出

expression, …) >>filename

printf(format,expression,

带格式输出

expression, …) |command

close(filename),close(command)中

)

2008.12初稿2010.12修改

wc详解

wc命令参数及用法详解 wc命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。 语法:wc [选项] 文件... 说明:该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。下面让我们来简单的看一下其支持的参数及其代表的含义。 参数及含义 举例 demo.txt Welcome to https://www.wendangku.net/doc/5d6392524.html, 欢迎来到这里 wc -cwl demo.txt #2 4 39 demo.txt 顺序依次是l w c 强调 这里面大家要注意一点。m和c参数是不能共存的,只有一个可以起作用,看哪个参数在后面。例如: wc -c demo.txt #39 demo.txt wc -m demo.txt #33 demo.txt wc -cml demo.txt #2 33 demo.txt wc -cm demo.txt #33 demo.txt 结果为m的值哦

举一反三 需要把一个文件的行数存在另一个文件里。可是这个wc还会同时输出文件名。咋办?简单,用管道处理一下OK啦 wc -l demo.txt | awk 'BEGIN{FS=" "}{print $1}' 这样,我们就把想要的文件行数给取到了,至于存在另一个文件里,我们可以把awk的print结果重定向到文件。 重要提示 用wc处理文件的时候,一定要在文件末尾存在换行符,否则统计的行数是不正确的。当然多几个换行符是没有问题的。 echo "UNIX" | wc -l # 1 echo -n "UNIX" | wc -l # 0 echo "UNIX\n\n\n" | wc -l # 1 今天看到的命令是:ls -l | wc -l 用来统计当前目录下的文件数

awk命令

什么是awk? 你可能对UNIX比较熟悉,但你可能对awk很陌生,这一点也不奇怪,的确,与其优秀的功能相比,awk还远没达到它应有的知名度。awk是什么?与其它大多数UNIX命令不同的是,从名字上看,我们不可能知道awk的功能:它既不是具有独立意义的英文单词,也不是几个相关单词的缩写。事实上,awk是三个人名的缩写,他们是:Aho、(Peter)Weinberg 和(Brain)Kernighan。正是这三个人创造了awk---一个优秀的样式扫描与处理工具。 AWK的功能是什么?与sed和grep很相似,awk是一种样式扫描与处理工具。但其功能却大大强于sed和grep。awk提供了极其强大的功能:它几乎可以完成grep和sed所能完成的全部工作,同时,它还可以可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上,awk 的确拥有自己的语言:awk程序设计语言,awk的三位创建者已将它正式定义为:样式扫描和处理语言。 为什么使用awk? 即使如此,你也许仍然会问,我为什么要使用awk? 使用awk的第一个理由是基于文本的样式扫描和处理是我们经常做的工作,awk所做的工作有些象数据库,但与数据库不同的是,它处理的是文本文件,这些文件没有专门的存储格式,普通的人们就能编辑、阅读、理解和处理它们。而数据库文件往往具有特殊的存储格式,这使得它们必须用数据库处理程序来处理它们。既然这种类似于数据库的处理工作我们经常会遇到,我们就应当找到处理它们的简便易行的方法,UNIX有很多这方面的工具,例如sed 、grep、sort以及find等等,awk是其中十分优秀的一种。 使用awk的第二个理由是awk是一个简单的工具,当然这是相对于其强大的功能来说的。的确,UNIX有许多优秀的工具,例如UNIX天然的开发工具C语言及其延续C++就非常的优秀。但相对于它们来说,awk完成同样的功能要方便和简捷得多。这首先是因为awk提供了适应多种需要的解决方案:从解决简单问题的awk命令行到复杂而精巧的awk程序设计语言,这样做的好处是,你可以不必用复杂的方法去解决本来很简单的问题。例如,你可以用一个命令行解决简单的问题,而C不行,即使一个再简单的程序,C语言也必须经过编写、编译的全过程。其次,awk本身是解释执行的,这就使得awk程序不必经过编译的过程,同时,这也使得它与shell script程序能够很好的契合。最后,awk本身较C语言简单,虽然awk吸收了C语言很多优秀的成分,熟悉C语言会对学习awk有很大的帮助,但awk 本身不须要会使用C语言——一种功能强大但需要大量时间学习才能掌握其技巧的开发工具。 使用awk的第三个理由是awk是一个容易获得的工具。与C和C++语言不同,awk只有一个文件(/bin/awk),而且几乎每个版本的UNIX都提供各自版本的awk,你完全不必费心去想如何获得awk。但C语言却不是这样,虽然C语言是UNIX天然的开发工具,但这个开发工具却是单独发行的,换言之,你必须为你的UNIX版本的C语言开发工具单独付费(当然使用D版者除外),获得并安装它,然后你才可以使用它。

Word2010基础知识试题

Word2010基础知识试题 1、Word2010是哪个公司的产品() A、IBM B、Microsoft C、Adobe D、SONY 2、新建文档的快捷键是() A、Alt+N B、Ctrl+N C、Shift+N D、Ctrl+s 3、新建命令位于哪个菜单下() A、文件 B、编辑 C、插入 D、格式 4、下列关于新建一个空白文档的操作正确的是() A、从文件菜单中选择新建命令,单击新建窗口中可用模板中的空白文档,然后 按创建 B、从文件菜单中选择新建命令,单击新建对话框常用选项中的电子邮件然后按 确定 C、从文件菜单中选择新建命令,单击新建对话框常用选项中的WEB页然后按确 定 D、以上说法都不对 5、下列说法正确的是() A、第二次保存时的保存位置默认的就是第一次保存时的位置 B、在“开始”选项卡中也有“保存”按钮 C、在Word中只能以“Word文档”类型保存 D、文件保存的位置既可以是硬盘也可以是软盘 6、“另存为”选项位于() A、“插入”选项卡中 B、“文件”下拉菜单中 C、“开始”选项卡中 D、“页面布局”选项卡中 7、第()次保存时会弹出“另存为”对话框 A、1 B、2 C、3 D、4 8、下列有关“另存为”对话框的说法中不正确的是() A、在“保存位置”下拉列表中可以选择保存的位置 B、文件要保存的类型可以是Word文档,也可以是其它类型 C、文件名可以是已经存在的文件名,也可以是新的文件名 D、最后单击“确定”按钮即可实现保存了 9、在把文档“另存为”时所要进行的操作有()(多选) A、选择保存位置 B、选择保存类型 C、输入要保存的文件名 D、选择文件保存日期 10、下列说法不正确的是() A、关闭文档时只需直接单击文档窗口右上角的“关闭”按钮即可

ls -l命令详解

有几个字段老是记不住,就记载这里吧 ls -l 列表信息详解 我们平时用ls -l 命令查看一个目录下的文件和子目录的详悉信息时,会得到一个详细的文件和目录名列表.这个列表包含了文件的属性,所属用户,所属组,创建时间,文件大小等等信息.这些信息到底是什么意思呢?有很多初学者对这些不太了解,因此想详悉讲解一下用ls -l命令得到的文件列表每一个字段的意思 以笔者电脑的/root目录为例: [root@gucuiwen root]# ll 总用量 4055 -rw-r--r-- 1 root root 1581 11月 24 18:14 anaconda-ks.cfg drwxr-xr-x 2 root root 208 12月 1 13:50 babylinux -rw-r--r-- 1 root root 1474560 11月 25 15:02 babylinux.img -rw-r--r-- 1 root root 26829 11月 25 15:10 babylinux.png lrwxrwxrwx 1 root root 9 1月 4 11:06 disk1.link.png -> disk1.png -rw-r--r-- 1 root root 3209 11月 26 12:07 disk1.png -rw-r--r-- 1 root root 692 11月 26 13:16 disk2.png -rw-r--r-- 1 root root 718 11月 26 13:30 disk3.png drwx------ 8 root root 392 1月 4 08:40 evolution -rwxr-xr-x 1 root root 13695 11月 30 16:51 fangkuai.sh drwxr-xr-x 2 root root 208 12月 28 12:06 FreeBSD -rw-r--r-- 1 root root 2315 11月 25 17:19 getMBR.png brw-r----- 1 root root 3, 1 1月 4 11:06 hda1 drwxr-xr-x 2 root root 296 12月 31 11:53 htmls -rw-r--r-- 1 root root 21369 11月 24 18:12 install.log -rw-r--r-- 1 root root 3024 11月 24 18:12 install.log.syslog -rw-r--r-- 1 root root 293 1月 4 10:51 ls.txt -rw-r--r-- 1 root root 2237702 11月 25 15:09 magick.miff -rw-r--r-- 1 root root 13493 11月 25 17:31 mbr1.png -rw-r--r-- 1 root root 8123 11月 25 17:42 mbr2.png -rw-r--r-- 1 root root 512 11月 30 16:10 mbr.dat -rw-r--r-- 1 root root 64512 11月 26 15:33 partition.doc -rw-r--r-- 1 root root 49887 11月 26 15:32 partition.sxw -rw-r--r-- 1 root root 1541 12月 18 13:14 passwd -rw-r--r-- 1 root root 46320 11月 25 17:28 Screenshot-1.png -rw-r--r-- 1 root root 44145 11月 25 17:32 Screenshot-2.png -rw-r--r-- 1 root root 43732 11月 25 17:13 Screenshot.png drwxr-xr-x 3 root root 72 1月 4 10:49 test -rw-r--r-- 1 root root 0 12月 18 10:44 tset crw-r----- 1 root root 4, 65 1月 4 11:08 ttyS1

课题_word2010基础知识试题

一、单选题 1、Word具有的功能是__D__。 A.表格处理 B.绘制图形 C.自动更正 D.以上三项都是 2、通常情况下,下列选项中不能用于启动Word 2010的操作是___D___。 A.双击Windows桌面上的Word 2010快捷方式图标 B.单击"开始"→"所有程序"→"Microsoft Office"→"Microsoft Word 2010" C.在Windows资源管理器中双击Word文档图标 D.单击Windows桌面上的Word 2010快捷方式图标 3、在Word 2010中,用快捷键退出Word的最快方法是__A____。 A.Alt+F4 B.Alt+F5 C.Ctrl+F4 D.Alt+Shift 4、下面关于Word标题栏的叙述中,错误的是___B___。 A.双击标题栏,可最大化或还原Word窗口 B.拖曳标题栏,可将最大化窗口拖到新位置 C.拖曳标题栏,可将非最大化窗口拖到新位置 D.以上三项都不是 5、Word 2010的"文件"选项卡下的"最近所用文件"选项所对应的文件是____C__。 A.当前被操作的文件 B.当前已经打开的Word文件 C.最近被操作过的word文件 D.扩展名是.docx的所有文件 6、在Word 2010编辑状态中,能设定文档行间距的功能按钮是位于___A___中。 A."文件"选项卡 B."开始"选项卡 C."插入"选项卡 D."页面布局"选项卡 7、 Word 2010中的文本替换功能所在的选项卡是___A___。 A."文件" B."开始" C."插入" D."页面布局" 8、在Word 2010的编辑状态下,"开始"选项卡下"剪贴板"组中"剪切"和"复制"按钮呈浅灰色而不能用时,说明____B__。 A.剪切板上已经有信息存放了 B.在文档中没有选中任何内容 C.选定的内容是图片 D.选定的文档太长,剪贴板放不下 9、在Word 2010中,可以很直观地改变段落的缩进方式,调整左右边界和改变表格的列宽,应该利用____C__。 A.字体 B.样式 C.标尺 D.编辑 10、在Word 2010的编辑状态下,文档窗口显示出水平标尺,拖动水平标尺上沿的"首行缩进" 滑块,则___B_。 A.文档中各段落的首行起始位置都重新确定 B.文档中被选择的各段落首行起始位置都重新确定 C.文档中各行的起始位置都重新确定 D.插入点所在行的起始位置被重新确定

Linux awk命令详解

Linux awk命令详解 AWK介绍 0.awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk。 1.awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。完整的awk脚本通常用来格式化文本文件中的信息。 2.三种方式调用awk 1) awk [opion] 'awk_script' input_file1 [input_file2 ...] awk的常用选项option有; ① -F fs : 使用fs作为输入记录的字段分隔符,如果省略该选项,awk使用环境变量IFS的值 ② -f filename : 从文件filename中读取awk_script ③ -v var=value : 为awk_script设置变量 2) 将awk_script放入脚本文件并以#!/bin/awk -f 作为首行,给予该脚本可执行权限,然后在shell下通过键入该脚本的脚本名调用之。 3) 将所有的awk_script插入一个单独脚本文件,然后调用: awk -f awk脚本文件input_file(s) 3. awk的运行过程 1) awk_script的组成: ① awk_script可以由一条或多条awk_cmd组成,两条awk_cmd之间一般以NEWLINE分隔 ② awk_cmd由两部分组成: awk_pattern { actions } ③ awk_script可以被分成多行书写,必须确保整个awk_script被单引号括起来。 2) awk命令的一般形式: awk ' BEGIN { actions } awk_pattern1 { actions } ............ awk_patternN { actions } END { actions } ' inputfile 其中BEGIN { actions } 和END { actions } 是可选的。 3) awk的运行过程: ①如果BEGIN 区块存在,awk执行它指定的actions。 ② awk从输入文件中读取一行,称为一条输入记录。(如果输入文件省略,将从标准输入读取) ③awk将读入的记录分割成字段,将第1个字段放入变量$1中,第2个字段放入$2,以此类推。$0表示整条记录。字段分隔符使用shell环境变量IFS或由参数指定。 ④把当前输入记录依次与每一个awk_cmd中awk_pattern比较,看是否匹配,如果相匹配,就执行对应的actions。如果不匹配,就跳过对应的actions,直到比较完所有的awk_cmd。 ⑤当一条输入记录比较了所有的awk_cmd后,awk读取输入的下一行,继续重复步骤③和④,这个过程一

Linux awk命令使用详解

Linux awk命令使用详解 简单介绍一下,awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大,这是我们玩linux的必备基本功,若要对其身世有更详尽的了解,自行搜索即可。对于工具的知识,笔者尽量将每个知识点的简要说明,并给出实例。 简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 用法: awk [options] 'scripts' file1,file2... awk [options] 'pattern {action}' file1,file2... options是awk的支持的选项,譬如-F -v等; scripts是其处理脚本,包含模式pattern和动作action(模式和动作的关系一般为,模式负责确定有效字段,动作负责对其处理) 一、print的简单使用

创建一个简单的测试文件如下: [root@mos download]# cat demo.txt Welcome to mos blog. This is a test file. 例:打印整行: $0 [root@mos download]# awk '{print $0}' demo.txt Welcome to mos blog. This is a test file. 例:打印每行的最后一个字段: $NF [root@mos download]# awk '{print $NF}' demo.txt blog. file. 例:打印第二个字段: $2 [root@mos download]# awk '{print $2}' demo.txt to is 例:打印每行的倒数第二个字段,并在其后打印OK

(完整版)word2010基础知识试题.docx

WORD 格式整理分享 word2010 基础知识试题 一、单选题 1、 Word 具有的功能是__D__。 A. 表格处理 B. 绘制图形 C. 自动更正 D. 以上三项都是 2、通常情况下,下列选项中不能用于启动Word 2010 的操作是 ___D___。 A. 双击 Windows 桌面上的 Word2010 快捷方式图标 B. 单击 " 开始 " → " 所有程序 " →"Microsoft Office"→ "Microsoft Word 2010" C.在 Windows 资源管理器中双击Word 文档图标 D.单击 Windows 桌面上的Word2010 快捷方式图标 3、在Word2010 中,用快捷键退出Word 的最快方法是 __A____。 A.Alt+F4 B.Alt+F5 C.Ctrl+F4 D.Alt+Shift 4、下面关于Word 标题栏的叙述中,错误的是___B___。 A. 双击标题栏,可最大化或还原Word窗口 B.拖曳标题栏,可将最大化窗口拖到新位置 C.拖曳标题栏,可将非最大化窗口拖到新位置 D.以上三项都不是 5、Word 2010 的" 文件 " 选项卡下的 " 最近所用文件" 选项所对应的文件是____C__。 A.当前被操作的文件 B. 当前已经打开的 Word文件 C.最近被操作过的 word 文件 D.扩展名是 .docx 的所有文件 6、在Word2010 编辑状态中,能设定文档行间距的功能按钮是位于___A___中。 A." 文件 " 选项卡 B." 开始 " 选项卡 C." 插入 " 选项卡 D." 页面布局 " 选项卡 7、 Word 2010中的文本替换功能所在的选项卡是___A___。 A." 文件 " B." 开始 " C." 插入 " D." 页面布局 " 8、在 Word 2010 的编辑状态下," 开始 " 选项卡下 " 剪贴板 " 组中 " 剪切 " 和 " 复制 " 按钮呈浅灰色而不能用时,说明____B__。 A. 剪切板上已经有信息存放了 B. 在文档中没有选中任何内容 C.选定的内容是图片 D.选定的文档太长,剪贴板放不下 9、在 Word 2010 中,可以很直观地改变段落的缩进方式,调整左右边界和改变表格的列宽, 应该利用 ____C__。 A. 字体 B. 样式 C. 标尺 D. 编辑 10、在 Word 2010 的编辑状态下,文档窗口显示出水平标尺,拖动水平标尺上沿的" 首行缩进"滑块,则 ___B_。 A.文档中各段落的首行起始位置都重新确定 B.文档中被选择的各段落首行起始位置都重新确定 C.文档中各行的起始位置都重新确定 D.插入点所在行的起始位置被重新确定

linux下cat命令详解1

cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用 1.命令格式: cat [选项] [文件]... 2.命令功能: cat主要有三大功能: 1.一次显示整个文件:cat filename 2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件. 3.将几个文件合并为一个文件:cat file1 file2 > file 3.命令参数: -A, --show-all 等价于-vET -b, --number-nonblank 对非空输出行编号 -e 等价于-vE -E, --show-ends 在每行结束处显示$ -n, --number 对输出的所有行编号,由1开始对所有输出的行数编号 -s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行 -t 与-vT 等价 -T, --show-tabs 将跳格字符显示为^I -u (被忽略) -v, --show-nonprinting 使用^ 和M- 引用,除了LFD 和TAB 之外 4.使用实例: 实例一:把log2012.log 的文件内容加上行号后输入log2013.log 这个文件里 命令: cat -n log2012.log log2013.log 输出: 代码如下: [root@localhost test]# cat log2012.log 2012-01 2012-02 ======[root@localhost test]# cat log2013.log 2013-01 2013-02

Word2010中常用符号的快捷键

Word2010中常用符号的快捷键 商业符号 输入办法:Alt+0153 金融符号 $ 元美国和其他一些国家的货币单位 输入办法:Shift+4 (或Alt+036) ? 弗罗林荷兰盾货币单位 输入办法:Alt+0131 ¢分货币单位分 输入办法:Alt+0162 £镑英国和其他一些国家的货币单位 输入办法:Alt+0163 ¥元中国、日本等国的货币单位 输入办法:Alt+0165 数学符号 E°度角度的表示符号(字母E是为了衬托角度符号的正确位置) 输入办法:Alt+0176 ÷除除法运算符号 输入办法:Alt+0247 3乘乘法运算符号 输入办法:Alt+0215 ±加减号表示加或减 输入办法:Alt+177 ?四分之一分数符号 输入办法:Alt+0188 ?二分之一分数符号 输入办法:Alt+0189 ?四分之三分数符号 输入办法:Alt+0190 ? 否表示否定 输入办法:Alt+0172 % 百分号 输入办法:Shift+5 ‰千分号 输入办法:Alt+0137 杂项符号 ? 粗圆点用于引起读者对段落的注意 输入办法:Alt+0149 2中圆点用于分开两个项目输入办法:Alt+0183 标点符号 …省略号表示省略一个或一串的标记 输入办法:Alt+0133 —长破折号用于句子中表示思想或重点的转折 输入办法:Alt+0151 –短破折号用于连接持续的数字,有些情况下可作为连字号 输入办法:Alt+0150 说明符号 ? 单剑号用于表示死亡日期或参见注脚 输入办法:Alt+0134 ? 双剑号用于表示参见注脚 输入办法:Alt+0135 ?Pilcrow 表示段落停顿、分隔 输入办法:Alt+0182 §段落符表示段落的开始或参见注脚 输入办法:Alt+0167 度量符号 μ微号微米或毫克等的缩写符号 输入办法:Alt+0181 # 磅号在数字之后,表示重量磅数的计量符号 输入办法:Shift+3 代表什么意思呢?前面的符号是需要输入的符号。后面是输入的快捷键。比如shift+3.首先按住shift键 。在按3,先松开shift键,这样对应的符号就输入出来了。

AIX常用命令

AIX常用命令 目录操作 命令名功能描述使用举例 mkdir 创建一个目录mkdir dirname rmdir 删除一个目录rmdir dirname mvdir 移动或重命名一个目录mvdir dir1 dir2 cd 改变当前目录cd dirname pwd 显示当前目录的路径名pwd ls 显示当前目录的内容ls -la dircmp 比较两个目录的内容dircmp dir1 dir2 文件操作 命令名功能描述使用举例 cat 显示或连接文件cat filename pg 分页格式化显示文件内容pg filename more 分屏显示文件内容more filename od 显示非文本文件的内容od -c filename cp 复制文件或目录cp file1 file2 rm 删除文件或目录rm filename mv 改变文件名或所在目录mv file1 file2 ln 联接文件ln -s file1 file2

find 使用匹配表达式查找文件find . -name "*.c" -print file 显示文件类型file filename 选择操作 命令名功能描述使用举例 head 显示文件的最初几行head -20 filename tail 显示文件的最后几行tail -15 filename cut 显示文件每行中的某些域cut -f1,7 -d: /etc/passwd colrm 从标准输入中删除若干列colrm 8 20 file2 paste 横向连接文件paste file1 file2 diff 比较并显示两个文件的差异diff file1 file2 sed 非交互方式流编辑器sed "s/red/green/g" filename grep 在文件中按模式查找grep "^[a-zA-Z]" filename awk 在文件中查找并处理模式awk '{print $1 $1}' filename sort 排序或归并文件sort -d -f -u file1 uniq 去掉文件中的重复行uniq file1 file2 comm 显示两有序文件的公共和非公共行comm file1 file2 wc 统计文件的字符数、词数和行数wc filename nl 给文件加上行号nl file1 >file2 安全操作 命令名功能描述使用举例

Shell中的grep、awk和sed的常用命令和语法

常用的grep选项有: -c 只输出匹配行的计数。 -i 不区分大小写(只适用于单字符)。 -h 查询多文件时不显示文件名。 -l 查询多文件时只输出包含匹配字符的文件名。 -n 显示匹配行及行号。 -s 不显示不存在或无匹配文本的错误信息。 -v 显示不包含匹配文本的所有行。 $ grep“sort”*.doc ( #在当前目录下所有. d o c文件中查找字符串”s o r t”) $ grep “sort it” * (#或在所有文件中查询单词”sort it”) 2.行匹配 $ grep -c “48″ data.f $ 4 (#g r e p返回数字4,意义是有4行包含字符串”4 8″。) $ grep “48″ data.f (#显示包含”4 8″字符串的4行文本) 7. 查询空行,查询以某个条件开头或者结尾的行。 结合使用^和$可查询空行。使用- n参数显示实际行数 [root@mypc oid2000]# grep -n “^$” 111.txt (返回结果 2: #说明第二行是空行) [root@mypc oid2000]# grep -n “^abc” 111.txt (#查询以abc开头的行) [root@mypc oid2000]# grep -n “abc$” 111.txt (#查询以abc结尾的行) 8. 匹配特殊字符,查询有特殊含义的字符,诸如$ . ‘ ” * [] ^ | \ + ? ,必须在特定字符前加\。 [root@mypc oid2000]# grep “\.” 111.txt (#在111.txt中查询包含”.”的所有行) [root@mypc oid2000]# grep “my\.conf” 111.txt (#查询有文件名my. c o n f的行) 9. 目录的查询 [root@mypc oid2000]# ls -l |grep “^d” (#如果要查询目录列表中的目录) [root@mypc oid2000]# ls -l |grep “^d[d]“ (#在一个目录中查询不包含目录的所有文件) [root@mypc]# ls -l |grpe “^d…..x..x” (#查询其他用户和用户组成员有可执行权限的目录集合) Awk的常用命令语法 awk [-F filed-s eparator] “commands” input-file(s) [ - F域分隔符]是可选的,a w k使用空格作为缺省的域分隔符 1.2保存a w k输出 $ awk ‘{print $0}’ input-files > out-files (#重定向保存输出) $ awk ‘{print $0}’ input-files | tee out-files (#使用t e e命令,输出到文件的同时输出到屏幕) 1.3 常用的awk命令举例 [root@mypc /]# awk ‘$0 ~ /user/’ /etc/passwd (#如果某域含有user就将该行打

awk命令详解

常用awk命令(转)

awk 用法:awk ' pattern {action} ' 变量名含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录里域个数 NR 到目前为止记录数 OFS 输出域分隔符 ORS 输出记录分隔符 1、awk '/101/' file 显示文件file中包含101的匹配行。 awk '/101/,/105/' file awk '$1 == 5' file awk '$1 == "CT"' file 注意必须带双引号 awk '$1 * $2 >100 ' file awk '$2 >5 && $2<=15' file 2、awk '{print NR,NF,$1,$NF,}' file 显示文件file的当前记录号、域数和每一行的第一个和最后一个域。 awk '/101/ {print $1,$2 + 10}' file 显示文件file的匹配行的第一、二个域加10。 awk '/101/ {print $1$2}' file awk '/101/ {print $1 $2}' file 显示文件file的匹配行的第一、二个域,但显示时域中间没有分隔符。 3、df | awk '$4>1000000 ' 通过管道符获得输入,如:显示第4个域满足条件的行。 4、awk -F "|" '{print $1}' file 按照新的分隔符“|”进行操作。 awk 'BEGIN { FS="[: \t|]" } {print $1,$2,$3}' file 通过设置输入分隔符(FS="[: \t|]")修改输入

linux中grep命令详解

grep用法详解:grep与正则表达式 首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同! 正则表达式只是一种表示法,只要工具支持这种表示法,那么该工具就可以处理正则表达式的字符串。vi grep ,awk ,sed 等都支持正则表达式. 1基础正则表达式 grep 工具,以前介绍过。 grep -[acinv] '搜索内容串' filename -a 以文本文件方式搜索 -c 计算找到的符合行的次数 -i 忽略大小写 -n 顺便输出行号 -v 反向选择,即找没有搜索字符串的行 其中搜索串可以是正则表达式! 1 搜索有the的行,并输出行号 $grep -n 'the' regular_express.txt 搜索没有the的行,并输出行号 $grep -nv 'the' regular_express.txt

2 利用[]搜索集合字符 [] 表示其中的某一个字符,例如[ade] 表示a或d或e woody@xiaoc:~/tmp$ grep -n 't[ae]st' regular_express.txt 8:I can't finish the test. 9:Oh! the soup tast e good! 可以用^符号做[]内的前缀,表示除[]内的字符之外的字符。 比如搜索oo前没有g的字符串所在的行. 使用 '[^g]oo' 作搜索字符串 woody@xiaoc:~/tmp$ grep -n '[^g]oo' regular_express.txt 2:apple is my favorite foo d. 3:Foo tball game is not use feet only. 18:google is the best too ls for search keyword. 19:go ooo oogle yes! [] 内可以用范围表示,比如[a-z] 表示小写字母,[0-9] 表示0~9的数字, [A-Z] 则是大写字母们。[a-zA-Z0-9]表示所有数字与英文字符。当然也可以配合^来排除字符。 搜索包含数字的行 woody@xiaoc:~/tmp$ grep -n '[0-9]' regular_express.txt 5:However ,this dress is about $ 3183 dollars.

Shell中的grep awk和sed的常用命令和语法

Shell中的grep、awk和sed的常用命令和语法 Shell中的grep、awk和sed的常用命令和语法 ——oid2000收集整理 Grep的常用命令语法 1. 双引号引用和单引号引用 在g r e p命令中输入字符串参数时,最好将其用双引号括起来。例如:―m y s t r i n g‖。这样做有两个原因,一是以防被误解为s h e l l命令,二是可以用来查找多个单词组成的字符串,例如:―jet plane‖,如果不用双引号将其括起来,那么单词p l a n e将被误认为是一个文件,查询结果将返回―文件不存在‖的错误信息。 在调用变量时,也应该使用双引号,诸如:g r e p―$ M Y VA R‖文件名,如果不这样,将 没有返回结果。 在调用模式匹配时,应使用单引号.[root@mypc ]# echo `grep 123 111.txt` (#注意是反单引号) 2. 常用的g r e p选项有: -c 只输出匹配行的计数。 -i 不区分大小写(只适用于单字符)。 -h 查询多文件时不显示文件名。 -l 查询多文件时只输出包含匹配字符的文件名。 -n 显示匹配行及行号。 -s 不显示不存在或无匹配文本的错误信息。 -v 显示不包含匹配文本的所有行。 3. 特殊的——在多个文件中进行查询 $ grep "sort"*.doc ( #在当前目录下所有. d o c文件中查找字符串―s o r t‖)

$ grep "sort it" * (#或在所有文件中查询单词―sort it‖) 接下来的所有示例是指在单个文件中进行查询 4. 行匹配 $ grep -c "48" data.f $ 4 (#g r e p返回数字4,意义是有4行包含字符串―4 8‖。) $ grep "48" data.f (#显示包含―4 8‖字符串的4行文本) 5. 显示满足匹配模式的所有行行数: [root@mypc oid2000]# grep -n 1234 111.txt 1:1234 3:1234ab 6. 精确匹配 [root@mypc oid2000]# grep "1234\>" 111.txt 1234 7. 查询空行,查询以某个条件开头或者结尾的行。 结合使用^和$可查询空行。使用- n参数显示实际行数 [root@mypc oid2000]# grep -n "^$" 111.txt (返回结果2: #说明第二行是空行) [root@mypc oid2000]# grep -n "^abc" 111.txt (#查询以abc开头的行) [root@mypc oid2000]# grep -n "abc$" 111.txt (#查询以abc结尾的行) 8. 匹配特殊字符,查询有特殊含义的字符,诸如$ . ' " * [] ^ | \ + ? ,必须在特定字符前加\。[root@mypc oid2000]# grep "\." 111.txt (#在111.txt中查询包含―.‖的所有行) [root@mypc oid2000]# grep "my\.conf" 111.txt (#查询有文件名my. c o n f的行) 9. 目录的查询 [root@mypc oid2000]# ls –l |grep ―^d‖ (#如果要查询目录列表中的目录) [root@mypc oid2000]# ls –l |grep ―^d[d]‖(#在一个目录中查询不包含目录的所有文件) [root@mypc]# ls –l |grpe ―^d…..x..x‖ (#查询其他用户和用户组成员有可执行权限的目录集合) 10.排除自身

word2010基础知识试题

word2010基础知识试题 1. 中文word编辑软件的运行环境是windows,word文档文件自动默认的扩展名是.doc 2. 在word文档中,用回车键(enter)设置的是段落标记,标志的位置在尾部。 3. 在word编辑状态下,若要调整左右边界,利用标尺更直接快捷。当前输入的文字显示在插入点处。 4. 输入法之间转换的快捷键:ctrl + shift(上档键); 中英文转换键:ctrl+空格键。 5. word具有分栏的功能,各栏的宽度可以不同 6. 打开一个文档,通常是指把指定的文档的内容从磁盘调入内存,并显示出来。word程序中允许打开多个文档,用窗口菜单可以实现文档窗口之间的切换 7. 在word打开一文件进入编辑状态,编辑一段时间后,执行“文件”菜单中“保存”命令,则:只能将当前文档存储在原文件夹内。 8. 在word的编辑状态,要取消word主窗口显示的“格式”工具栏,应使用视图菜单中的命令。 9. 在word文档编辑中,若要插入一个“分页号”,可执行“插入”菜单中的命令。 10. 在word编辑状态下,对于文档中所插入的图片,不能进行的操作是修改其中的图形。 11. 在word文档编辑中,使用剪贴板可方便的进行对象的拷贝、移动、删除等操作。在使用剪贴板复制文本时,先选定要复制文本,按〈ctrl>+键,将插入点移到目标位置,按〈ctrl>+键,则剪贴板中的文本被粘贴到目标位置,完成了复制工作。 12. 在word中用鼠标单击格式工具栏中的“编号”或“项目符号”按钮来设置项目符号和段落编号状态。一旦设置以后,每按一次〈enter〉键,都会在下一行行首自动添加一个项目符号或编号,关闭添加项目符号和段落编号状态时通过再次单击项目符号或编号按钮来完成的 13. 在word中,若删除表格中一行,应把插入点移到要删除的任一单元格,利用“表格”菜单,选择删除整行。 14. 在word段落修饰中,段落的对齐方式:左对齐、右对齐、中对齐、两端对齐和分散对齐 15. 在word的编辑状态下,当前的字体全是宋体字,选择了一段文字使用反显状,先设定了楷体、又设定了仿宋体、这被选择的一半为楷书、一半为仿宋体。(×)

完整版word2010基础知识试题

整理分享WORD格式 word2010基础知识试题一、单选题。能是__D__、Word具有的功1 以上三项都是自动更正D. B.绘制图形C. A.表格处理 。2010的操作是___D___2、通常情况下,下列选项中不能用于启动Word 2010快捷方式图标A. 双击Windows桌面上的Word 2010 Microsoft Word →Microsoft 晏楦散→B.单击开始→所有程序Word文档图标C.在Windows资源管理器中双击快捷方式图标Word 2010D.单击Windows桌面上的。的最快方法是__A____Word 2010中,用快捷键退出Word 3、在D.Alt+Shift C.Ctrl+F4 B.Alt+F5 A.Alt+F4 ___B___。4、下面关于Word标题栏的叙述中,错误的是窗口 A.双击标题栏,可最大化或还原Word B.拖曳标题栏,可将最大化窗口拖到新位置C.拖曳标题栏,可将非最大化窗口拖到新位置D.以上三项都不是____C__。最近所用文件选项所对应的文件是文件Word 2010的选项卡下的5、 当前被操作的文件 A. Word文件B.当前已经打开的word文件C.最近被操作过的 .docx的所有文件D.扩展名是位于___A___中。设定文档行间距的功能按钮是6 、在Word 2010编辑状态中,能选项卡?开始文件选项卡? 选项卡页面布局选项卡??插入。中的文本替换功能所在的选项卡是___A___7、Word 2010 页面布局?尮开始?插入?文件?尮按钮呈浅灰复制剪切和开始选项卡下剪贴板组中8、在Word 2010的编辑状态下,____B__。色而不能用时,说明 A.剪切板上已经有信息存放了 B.在文档中没有选中任何内容选定的内容是图片C. 选定的文档太长,剪贴板放不下D.调整左右边界和改变表格的列宽,可以很直观地改变段落的缩进方式,Word 2010中,9、在。该利用____C__应

Perl命令行使用技巧

Perl命令行使用技巧 Perl在设计之初就是为了能够整合shell、awk、sed、sort、grep等工具的目的而出现的,我们习惯在unix/linux下使用系统为我们提供的一系列优秀的工具进行文本处理、文件管理,那是便捷并且是可行的。但是在windows下我们在日常办公过程中,如果需要进行比较复杂的文本处理,是否必须把文本粘贴到linux下,用我们习惯的方式进行处理,或者是使用ultraedit、word之类的工具想其他办法处理呢?如果你熟悉perl的话,那么只需要安装perl 的win32版本,unix下常规的awk、sed、grep、sort等工具的功能是完全可以实现的。并且只要掌握以下的一些方法,所有的文本处理都可以放在一个perl解释器进程中完成,不需要另外调用awk或sed等,减少了shell与awk数据传递的麻烦。下面我就简单的举几个例子进行说明: 1.一个命令行模拟awk: # 将第一列和倒数第二列相加 # 等同awk脚本: awk '{i = NF - 1; print $1 + $i}' perl -lane 'print $F[0] + $F[-2]' 举例1:如果有文件raytest.txt 1 2 3 4 5 6 7 8 使用命令行:perl -lane 'print $F[0] + $F[-2]' raytest.txt 执行后结果为: 4 12 简要说明: ●-l 参数是在打印每一行运算结果后加上行结束符(默认为换行符), 如果没有此参数,上例的输出就会是: 412 ●-a 与-n参数一起使用时开启类似awk的自动分割输入行的功能,默认使用空 格或tab分割,可以使用-F参数指定分割符。分割的内容放入特定的数组@F。 ●-n 参数开启按行读取的功能,类似awk的方式一行行从文件中读取 ●-e 参数将后边的串内容作为perl代码处理 2.打印文件中的一系列行: a)打印行号范围内的内容: # 打印文件中15到17行的内容 perl -ne 'print if $. >= 15; exit if $. >= 17;' # 或者更为简单 perl -ne 'print if 15 .. 17' 简要说明: ●$. 为perl中的默认变量,存储当前的行号,与awk中的NR意义相同。 ●15..17表示范围,“..”操作符指示范围

相关文档