Linx操作技术基础 3_第1页
Linx操作技术基础 3_第2页
Linx操作技术基础 3_第3页
Linx操作技术基础 3_第4页
Linx操作技术基础 3_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章Vi编辑器轻松从Windows或MacOS

迁移到openEuler5.1基本数学计算5.2多列内容输出5.3单行编辑数据5.4数据操作工具5.5本章小结

目录/CONTENTS5.1基本数学计算5.1基本数学计算4OpenEuler操作系统为用户提供了丰富的实用程序,以满足各种计算需求。在这些实用程序中,BC作为一款强大的计算工具,广泛用于处理数学计算问题;作为一款面向脚本语言的任意精度计算器,通常用于完成复杂的数学运算和脚本中的计算任务。具体来说,BC支持各种基本运算、进制转换、数学函数和自定义函数等。5.1BC命令选项5如图,通过不同的命令行选项,用户可以控制BC的行为。

表5.1BC命令选项5.1BC命令选项6在终端执行:图5.1显示帮助信息bc–h如图5.1所示,-h选项用于显示帮助信息并退出,以为用户提供所有选项的快速参考。5.1BC命令选项7在终端执行:图5.2进入交互模式

如图5.2所示,-i选项用于强制BC进入交互模式,适合需要逐步输入和查看结果的场景。bc–i5.1BC命令选项8如图5.3所示,-l选项用于加载标准数学库,此时可以使用相对应的数学函数进行更为复杂的计算。在终端执行:图5.3

加载标准数学库bc–l5.1BC命令选项9如图5.4所示,-q选项用于启动时不显示版权和版本信息,以使输出更简洁。在终端执行:图5.4启动时不显示版权和版本信息bc–q5.1BC命令选项10如图5.5所示,-s选项用于启用严格的标准模式,非标准语法会被视为错误,以确保代码的规范性。在终端执行:图5.5强制标准模式bc–s5.1BC命令选项11如图5.6所示,-w选项则在使用非标准语法时发出警告,但不会中断执行,适合调试时被使用。在终端执行:图5.6对非标准语法发出警告bc–w5.1BC命令选项12在终端执行:如图5.7所示,-v选项显示BC的版本信息并退出,以方便用户检查当前工具的版本,此时BC的版本为1.07.1。图5.7显示版本信息BC提供了执行各种数学和逻辑操作的命令,涵盖加法、减法、乘法、除法、取模、乘方等基本运算,以及自增、自减运算。这些命令具有高精度计算功能,能够处理复杂的数学表达式。bc–v5.1BC基本运算命令13自增和自减运算允许用户简洁地管理变量的递增和递减,在循环和条件判断中尤为实用。5.1BC基本运算命令14在终端中执行以下命令:bc–lscale=4;10/3如图5.8所示,设置计算结果的小数为4位,并显示出10/3的结果。图5.8设置计算结果的小数5.1BC基本运算命令15在终端中执行以下命令:bc–lx=5;y=x++;xy如图5.9所示,自增操作x++会在返回当前值后将x的值增加1,如x=5;y=x++会使x变为6,但y的值仍为5,因为x++先返回当前值再进行自增。图5.9自增操作

5.1BC进制转换命令16BC进制转换命令用于处理不同进制之间的转换,提供了灵活的数值表示方式。通过设置输入进制(ibase)和输出进制(obase),可以在二进制、十进制、十六进制等多种进制之间轻松切换。表5.3给出了BC中用于进制转换的命令,涵盖了设置输入和输出进制的命令ibase和obase。通过这些命令,可以在不同进制之间进行转换。5.1BC进制转换命令17在终端中执行以下命令:bcibase=16;A1如图5.10所示,将输入进制设置为16,计算十六进制A1的十进制值,结果为161。图5.10设置输入进制5.1BC进制转换命令18在终端中执行以下命令:bcibase=10;obase=16255如图5.11所示,先将输入进制设置为10,再将输出进制设置为16,将十进制255转换为十六进制,结果为FF。图5.11设置输入、输出进制5.1BC数学函数命令19BC的数学函数命令(见图5.4)在处理基本数学运算和科学计算时具有重要意义。通过命令如sqrt(x)、s(x)和c(x),可以执行平方根、正弦、余弦等基本的数学操作。BC支持的这些函数使其成为一个强大的计算工具,能够处理涉及几何计算、周期性分析、对数和指数运算等多种场景的复杂问题。虽然BC的内置函数有限,但它能够满足许多常见的数学需求。5.1BC数学函数命令20在终端中执行以下命令:bc-le(2)如图5.12所示,e(2)返回结果约为7.389,这对于处理指数增长和衰减非常有用。图5.12计算自然指数函数

5.1BC数学函数命令21在终端中执行以下命令:bc-lj(0,1)如图5.13所示,j(0,1)计算J_0(1)的值,结果约0.7651977,这在物理学和工程学的波动分析中常用。图5.13计算第一类贝塞尔函数5.1BC基本运算命令22此外,BC中还可以定义自己的函数以实现特定的计算任务。自定义函数允许将常用的计算逻辑封装成一个命令,以便在整个BC脚本中多次调用。这种功能在复杂的计算中非常有用,可以提高代码的可读性和复用性。自定义函数格式如下:definefunction_name(parameters){body}其中关键字define表示定义函数,function_name表示函数名,parameters表示参数列表,body表示函数的具体实现。定义函数后,可以通过函数名和参数列表调用该函数5.1BC基本运算命令23在终端执行以下命令。bc-ldefinesquare(x){returnx*x}square(5)如图5.14所示,自定义square函数用于计算一个数的平方。在定义square函数之后,可以通过square(5)命令来调用它,即BC会计算5的平方并返回结果25。图5.14自定义BC函数

注意:若需结束BC的运行并退出,可以按Enter键另起一行,然后直接输入quit,并按Enter键。5.2多列内容输出

5.2多列内容输出25本节主要是介绍如何使用系统提供的工具来格式化和输出多列内容。多列输出能够让用户更加直观地阅读数据,特别是在处理包含多个字段的文本文件时。通过格式化输出,可以迅速找到所需信息,以提高工作效率。输出多列内容的工具是column命令,它能够根据用户指定的分隔符或宽度来自动对齐文本,以生成易读的多列格式。用户可以基于空格、制表符或其他分隔符进行列的划分。其命令行操作的基本格式如下:。column[选项][文件名称]其中选项用于指定不同的输出格式或行为,文件名称是指输入的文件名称,如果不指定文件名称,则column命令会从标准输入(stdin)读取数据。5.2多列内容输出26如表5.5所示,-c选项允许用户指定每行的最大输出宽度。对于超出指定宽度的内容,column命令会自动进行换行处理。5.2多列内容输出27在终端中执行以下命令:catex050201_01.txt图5.15所示为ex050201_01.txt中的内容,现需要再次进行格式化。图5.15显示文本内容

5.2多列内容输出28在终端中执行以下命令:column–c20ex050201_01.txt如图5.16所示,-c20指定最大输出宽度为20字符。由于原始文本宽度没有超过此限制,因此没有出现自动换行。图5.16指定输出的最大宽度

5.2多列内容输出29在某些情况下,输入文件的列内容并非由空格或制表符分隔。-s选项允许用户指定自定义的分隔符。在终端中执行以下命令:catex050201_02.txt图5.17所示为ex050201_02.txt中的内容。图5.17显示文本内容

5.2多列内容输出30接着,在终端执行以下命令:column–s','–tex050201_02.txt如图5.18所示,将逗号分隔的内容转换为多列对齐输出。其中-s','指定逗号为分隔符,而-t选项自动调整列的宽度并对齐内容。图5.18自定义的分隔符

-t选项检测列之间的空白(空格或制表符),将文件内容格式化为多列输出,并自动对齐每一列,以使数据更具可读性。5.2多列内容输出31在终端中执行以下命令:column–tex050201_01.txt如图5.19所示,文本中的内容按列对齐输出。图5.19显示文本内容

-x选项可以改变输出方向,以横向方式输出数据(从左到右填充列)。5.2多列内容输出32在终端中执行以下命令:column–xex050201_01.txt如图5.20所示,第1行的每一项成为输出的第1列,第2行的每一项成为输出的第二列,以此类推。图5.20改变集输出方向

-o选项用于将格式化输出的结果重定向到指定文件中。其主要用于希望将经过格式化处理的数据保存到一个文件中,而不是在终端显示时。5.2多列内容输出33在终端中执行以下命令:column–t–oex050201_01_output.txtex050201_01.txt如图5.21所示,将格式化后的结果保存到ex050201_01_output.txt文件中。图5.21输出结果重定向到指定文件-H选项用于格式化文件中的数据,但忽略第1行的内容(即第2行)。-H1选项指定不对第1列进行格式化输出,可以用于保留注释或元数据列,且不影响其他数据行的对齐格式。5.2多列内容输出34在终端中执行以下命令:column–H1-tex050201_01.txt如图5.22所示,将忽略ex050201_01.txt文件的第1列保持原样输出。图5.22忽略输出中的某些列需要注意的是,-H选项使用基于1的索引来指定需要忽略的列。5.3单行编辑数据

5.3单行编辑数据

36在文本处理工具中,SED是一款功能强大的工具。在单行编辑数据方面表现尤为出色,允许用户通过一系列的命令对文本进行处理。SED具有强大的文本处理功能,特别是在需要进行批量文本编辑时。5.3单行编辑数据

37s命令用于替换匹配的字符串。5.3单行编辑数据38SED提供了快速、高效的解决方案,体现在自动化文本处理、高效性、灵活性和流式处理等方面。在自动化文本处理方面,SED允许用户编写脚本来进行自动化文本处理。在高效性方面,与手动编辑文本文件相比,SED处理数据的速度更快,尤其适用于大文件和批量文件的处理。在灵活性方面,SED提供了比普通文本编辑器更为灵活的编辑功能,例如替换、删除、插入和转置等。在流式处理方面,SED处理输入数据流时,无须将数据加载到内存中,从而使其在处理大文件或流数据时更为高效。5.3单行编辑数据39在终端中执行以下命令:catex050301_01.txtsed's|Developer|Engineer|'ex050301_01.txt图5.23所示为执行以上命令的结果。命令sed's|Developer|Engineer|'ex050301_01.txt将文件ex050301_01.txt中每一行首次出现的单词Developer替换为Engineer。图5.23替换指定文本默认情况下,sed仅替换每行的第一个匹配项。若需替换行内所有匹配项,可以使用全局标志g,如sed's|Developer|Engineer|g'ex050301_01.txt,这条命令会将ex050301_01.txt中所有出现的Developer替换为Engineer。

d命令用于删除指定行。其基本语法格式为sed'Nd'file,其中N表示行号。5.3单行编辑数据40在终端中执行以下命令:catex050301_01.txtsed'2d'ex050301_01.txt图5.24所示为执行以上命令的结果。命令sed'2d'ex050301_01.txt删除文件ex050301_01.txt的第2行。图5.24删除指定行

指定行的数字2表示要删除的行号。若需要删除多行,可以使用范围,如删除第2-4行5.3单行编辑数据41在终端中执行以下命令:catex050301_01.txtsed'2a\ChrisGreen,28,Analyst'ex050301_01.txt图5.25所示为执行以上命令的结果,命令

sed'2a\ChrisGreen,28,Analyst'ex050301_01.txt在文件ex050301_01.txt的第2行后追加一行“ChrisGreen,28,Analyst”。图5.25在指定行后追加文本a命令用于在指定行之后追加文本,其基本语法格式为sed'Na\text'filename。需要注意的是,a后面是反斜杠和要追加的文本。5.3单行编辑数据42在终端中执行以下命令:catex050301_01.txtsed'2i\ChrisGreen,28,Analyst'ex050301_01.txt图5.26所示为执行以上命令的结果。命令sed'2i\ChrisGreen,28,Analyst'ex050301_01.txt在文件ex050301_01.txt的第2行前插入一行“ChrisGreen,28,Analyst。图5.26在指定行前插入文本i命令用于在指定行之前插入文本,其基本语法格式为sed'Ni\text'filename。同样,i后面接反斜杠和要插入的文本。5.3单行编辑数据43在终端中执行以下命令:catex050301_01.txtsed'2c\JaneDoe,25,GraphicDesigner'ex050301_01.txt图5.27所示为执行以上命令的结果。命令sed'2c\JaneDoe,25,GraphicDesigner'ex050301_01.txt将文件ex050301_01.txt的第2行替换为“JaneDoe,25,GraphicDesigner”,指定行的数字2表示要替换的行号。图5.27替换指定行的内容

c命令用于替换指定行的内容,其基本语法格式为sed'Nc\text'filename。5.3单行编辑数据44在终端中执行以下命令:catex050301_01.txtsed-n'2p'ex050301_01.txt图5.28所示为执行以上命令的结果。命令

sed-n'2p'ex050301_01.txt打印文件ex050301_01.txt的第2行。图5.28输出指定行

p命令用于输出指定的行,其基本语法格式为sed-n'Np'filename。-n选项禁止默认输出,p命令表示仅输出指定行。5.3单行编辑数据45在终端中执行以下命令:catex050301_01.txtsed'y/aeiou/AEIOU/'ex050301_01.txt图5.29所示为执行以上命令的结果。命令sed-n'y/aeiou/AEIOU/'ex050301_01.txt将文件ex050301_01.txt中的所有小写元音字母(a、e、i、o、u)转换为大写(A、E、I、O、U)。图5.29替换字符y命令用于逐字符替换,其基本语法格式为sed'y/abc/xyz/'filename。需要注意的是,y命令不支持正则表达式,适用于一对一字符替换。5.3单行编辑数据46在终端中执行以下命令:catex050301_01.txtsed'2q'ex050301_01.txt图5.30所示为执行以上命令的结果。命令sed'2q'ex050301_01.txt在读取到文件ex050301_01.txt的第2行后退出,不再处理后续行。图5.30在指定行后退出q命令用于在读取到指定行后退出sed命令,其基本语法格式为sed'Nq'filename。q命令可提高效率,特别是在处理大文件时。5.3单行编辑数据47在终端中执行以下命令:catex050301_01.txtsed'='ex050301_01.txt图5.31所示为执行以上命令的结果。命令

sed'='ex050301_01.txt输出每一行的行号和内容。图5.31输出当前行的行号=命令用于输出当前行的行号,适用于调试和查看文本的行号。5.3单行编辑数据48在终端中执行以下命令:catex050301_01.txtsed'/Developer/!d'ex050301_01.txt图5.32所示为执行以上命令的结果。命令sed'/Developer/!d'ex050301_01.txt删除文件ex050301_01.txt中所有不包含Developer的行图5.32对不匹配的行执行操作

!命令用于对不匹配指定模式的行执行操作,在处理过程中对不符合条件的行进行操作。!用于对不匹配条件的行执行操作,d表示删除这些行。5.3单行编辑数据49在终端中执行以下命令:catex050301_01.txtsed's/developer/Engineer/I'ex050301_01.txt图5.33所示为执行以上命令的结果。命令sed's/developer/Engineer/I'ex050301_01.txt在替换过程中忽略大小写,将文件ex050301_01.txt中所有developer(不论大小写)均替换为Engineer。图5.33忽略大小写进行匹配

I命令用于忽略大小写进行匹配,如在替换操作中忽略大小写,适用于不区分大小写的文本处理。5.4数据操作工具

5.4数据操作工具51其中pattern指模式部分,用于指定awk处理的条件,可以是正则表达式或逻辑表达式。action指动作部分,当匹配模式成功时执行的命令或操作,可以是输出、计算、替换等。awk是一种面向数据流的编程语言,名称源于其作者AlfredAho、PeterWeinberger和BrianKernighan的名字首字母。awk语言设计简单,功能强大,被广泛应用于日志文件分析、数据提取和报告生成等数据操作任务。其基本工作机制是读取输入(通常为文本文件),然后根据用户定义的模式和操作,对每一行进行匹配和处理。awk提供了强大的字符串处理、数组、条件语句和循环语句,使得它在文本处理和数据分析方面非常具有优势。awk程序通常由模式和动作构成,其基本语法格式如下:awk'pattern{action}'input_file5.4数据操作工具52awk涉及的主要命令主要有数据输出、模式匹配、字段操作、控制流程、数据计算和系统交互等类别。数据输出命令用于将处理结果显示在屏幕上或输出到文件中帮助用户格式化和组织数据输出,主要包含print和printf命令。其中print,简单易用,适合快速查看处理结果;printf则提供了更灵活的格式控制,如对数字精度和对齐的控制。数据输出模式匹配字段操作控制流程数据计算系统交互5.4数据操作工具--数据输出53表5.7展示了awk中用于输出数据的主要命令。print是最基本的输出命令在终端执行以下命令:catex050401_01.txtawk'{print$1,$3}'ex050401_01.txt

5.4数据操作工具--数据输出54命令awk'{print$1,$3}'ex050401_01.txt使用awk输出ex050401_01.txt文件的第1列(员工名字)和第3列(薪资)。图5.35输出文本行或字段图5.35所示为执行以上命令的结果。5.4数据操作工具--数据输出55在终端中执行以下命令:catex050401_01.txtawk'{printf"%-10s%-10s%-6d%-12s\n",$1,$2,$3,$4}'ex050401_01.txt如图5.36所示为执行以上命令的结果。命令awk'{printf"%-10s%-10s%-6d%-12s\n",$1,$2,$3,$4}'ex050401_01.txt使用printf格式化输出每一行的四个字段。其中,%-10s和%-12s用于指定字符串的最小宽度;%-6d用于格式化数字(薪资)。

图5.36格式化输出

printf提供了更加灵活的格式化输出功能,可以控制输出的格式和精度。通过这些命令,可以将处理后的数据结果输出到终端或重定向到文件中。5.4数据操作工具--模式匹配56表5.8展示了awk中用于模式匹配的命令。模式匹配是awk的强大功能之一,可以根据用户定义的模式(例如字符串或正则表达式)查找和处理数据。用户可以利用这些命令快速筛选出符合条件的文本行。模式匹配命令主要用于查找和筛选符合特定模式的文本行,是awk数据处理的核心功能之一。通过使用正则表达式,可以轻松地搜索日志文件中的错误信息、提取特定格式的数据或筛选出包含某个关键字的行。5.4数据操作工具--模式匹配57在终端中执行以下命令:catex050401_01.txtawk'/Jane/{print$0}'ex050401_01.txt图5.37所示为执行以上命令的结果。命令awk'/Jane/{print$0}'ex050401_01.txt匹配ex050401_01.txt文件中包含字符串“Jane”的所有行并输出。

图5.37匹配模式5.4数据操作工具--模式匹配58在终端中执行以下命令:catex050401_01.txtawk'$1~/^J/{print$0}'ex050401_01.txt图5.38所示为执行以上命令的结果。命令awk'$1~/^J/{print$0}'ex050401_01.txt为使用正则表达式^J匹配ex050401_01.txt文件中第1列(员工名字)以"J"开头的所有行。

图5.38正则表达式匹配运算符5.4数据操作工具--字段操作59表5.9展示了awk中引用和操作字段的命令字段操作命令如$n、NF(NumberofField)、FS(FieldSeparator)主要用于对文本数据的各个字段进行操作,是awk处理结构化数据的重要工具。其中,$n表示引用第n个字段;NF用于返回当前记录的字段数;FS则用于设置字段分隔符。这些命令能够灵活地提取、修改或格式化字段内容,尤其适合用于处理CSV(Comma-SeparatedValues)、TSV(Tab-SeparatedValues)或日志文件等多列数据的场景。5.4数据操作工具--字段操作60在终端中执行以下命令:catex050401_01.txtawk'{print$3}'ex050401_01.txt图5.39所示为执行以上命令的结果。命令awk'{print$3}'ex050401_01.txt输出ex050401_01.txt文件中每行的第三个字段。这里的$3引用了每行的第三个字段(即薪资字段)。

图5.39引用第n个字段注意:awk默认使用空格或制表符作为字段分隔符,因此$3指向的是每行中以空格或制表符分隔的第三个字段。5.4数据操作工具--字段操作61在终端中执行以下命令:catex050401_01.txtawk'{printNF}'ex050401_01.txt图5.40所示为执行以上命令的结果。命令awk'{printNF}'ex050401_01.txt输出ex050401_01.txt文件中每一行的字段数,从图5.40可以看到每行都有4个字段。

图5.40当前记录的字段数NF命令用于返回字段数量。5.4数据操作工具--字段操作62在终端中执行以下命令:catex050401_01.txtawk'BEGIN{FS=""}{print$1}'ex050401_01.txt如图5.41所示为执行以上命令的结果。命令awk'BEGIN{FS=""}{print$1}'ex050401_01.txt在BEGIN块中设置字段分隔符为空格FS="",然后输出第1列。因为原始文件已经使用空格作为分隔符,结果与默认设置一致。

图5.41设置字段分隔符FS命令可以对字段分隔符进行设置。5.4数据操作工具--控制流程63awk不仅能处理简单的文本操作,还能编写复杂的脚本逻辑。控制流程命令主要用于控制awk脚本的执行逻辑,以实现复杂的数据处理,其主要的命令有BEGIN、END、if、for、while。其中,BEGIN和END块分别在数据处理前后执行初始化或总结操作,而条件语句if、循环语句for和while允许对数据进行条件判断和循环操作。控制流程命令在复杂的数据处理任务中至关重要,如统计计算、条件过滤和数据转换等场景。5.4数据操作工具--控制流程64表5.10展示了awk中控制脚本执行流程的命令。BEGIN和END分别用于在数据处理前和处理后执行特定操作,if和for用于条件判断和循环控制。通过使用这些命令,用户可以编写更复杂的awk脚本5.4数据操作工具--控制流程65在终端中执行以下命令:catex050401_01.txtawk'BEGIN{print"Start"}'ex050401_01.txt图5.42所示为执行以上命令的结果。命令awk'BEGIN{print"Start"}'ex050401_01.txt使用了BEGIN块,BEGIN块中的命令在读取ex050401_01.txt文件内容之前执行。因此,将在任何数据处理之前输出“Start”。图5.42预处理动作5.4数据操作工具--控制流程66在终端中执行以下命令:catex050401_01.txtawk'END{print"END"}'ex050401_01.txt图5.43所示为执行以上命令的结果。命令awk'END{print"END"}'ex050401_01.txt使用了END块,END块中的命令在所有数据处理完成之后执行。因此,将在处理完ex050401_01.txt文件的所有数据后输出“End”。图5.43后处理动作5.4数据操作工具--控制流程67在终端中执行以下命令:catex050401_01.txtawk'{if($3>4000)print$0}'ex050401_01.txt图5.44所示为执行以上命令的结果。命令awk'{if($3>4000)print$0}'ex050401_01.txt中awk命令包含一个if条件语句,检查每行的第三个字段(薪资)是否大于4000。只有满足条件的行才会被输出出来,print$0将输出整行。由于ex050401_01.txt文件中所有员工的薪资都超过4000,故所有行都被输出出来。图5.44条件语句5.4数据操作工具--控制流程68在终端中执行以下命令:catex050401_01.txtawk'{for(i=1;i<=NF;i++)print$i}'ex050401_01.txt图5.45所示为执行以上命令的结果。命令awk'{for(i=1;i<=NF;i++)print$i}'ex050401_01.txt使用了一个for循环来遍历每行的所有字段,每次只输出一个字段。其中NF是内置变量,表示当前行的字段数,循环从第一个字段($1)开始,一直遍历到最后一个字段($NF)。

图5.45循环语句5.4数据操作工具--控制流程69在终端中执行以下命令:catex050401_01.txtawk'{if(NR==10)exit}{print$0}'ex050401_01.txt图5.46所示为执行以上命令的结果。命令awk'{if(NR==10)exit}{print$0}'ex050401_01.txt使用NR(NumberofRecord,行号变量)来检查当前处理的行号。如果行号等于10,exit命令将退出awk脚本,否则,print$0将输出当前行。由于ex050401_01.txt文件中只有5行,因此exit语句永远不会被触发,故所有行都会被输出出来。

图5.46退出awk程序5.4数据操作工具--数据计算70数据计算命令主要用来在awk中进行数学运算和字符串操作,提供了强大的数据分析和处理功能。awk提供了丰富的计算和字符串处理功能,如累加、求长度、字符串替换和分割等。这些功能在日志分析、数据清洗和文本格式化中非常有用。5.4数据操作工具--数据计算71sum+=命令用于累加计算,在终端中执行以下命令:catex050401_01.txtawk'{sum+=$3}END{print$sum}'ex050401_01.txt图5.47所示为执行以上命令的结果。命令awk'{sum+=$3}END{print$sum}'ex050401_01.txt使用awk命令计算文件中所有员工的薪资总和。{sum+=$3}用于对每一行的第3列(薪资字段)进行累加,$3是表示每行的第三个字段,END{print$sum}指的是在处理完所有输入文件的行后,输出总薪资25500。

图5.47累加计算5.4数据操作工具--数据计算72length用于计算字符串长度,在终端中执行以下命令:catex050401_01.txtawk'{printlength($0)}'ex050401_01.txt图5.48所示为执行以上命令的结果。命令awk'{printlength($0)}'ex050401_01.txt输出每行的字符长度。其中length($0)用于返回当前行的字符数,$0代表整行文本。每行的字符长度是计算结果,包括所有空格和字段,结果显示了每行的总字符数。

图5.48返回字符串或字段的长度5.4数据操作工具--数据计算73sub用于替换匹配的第一个字符串,在终端中执行以下命令:catex050401_01.txtawk'{sub(/Doe/,"Smith",$0);print}'ex050401_01.txt图5.49所示为执行以上命令的结果。命令awk'{sub(/Doe/,"Smith",$0);print}'ex050401_01.txt将每行中第一次出现的“Doe”替换为“Smith”。其中sub(/Doe/,"Smith",$0)表示在每一行中将第一个匹配到的“Doe”替换为“Smith”,$0表示整行文本。其他行不包含“Doe”,因此没有变化。

图5.49替换匹配的第一个字符串5.4数据操作工具--数据计算74gsub用于替换匹配的所有字符串,在终端中执行以下命令:catex050401_01.txtawk'{gsub(//,"_",$0);print}'ex050401_01.txt图5.50所示为执行以上命令的结果。命令awk'{gsub(//,"_",$0);print}'ex050401_01.txt将每行中所有空格替换为下画线。

图5.50替换匹配的所有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论