版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务一启动Shell【任务描述】启动Shell,并进行Shell编程。【任务实施】1.方法1在图形桌面环境下运行“系统终端”可以执行Shell命令。“系统终端”启动后是一个命令行操作窗口,可以随时放大缩小,随时关闭,比较方便。启动“系统终端”的方法是:单击“开始”→“应用程序”→“附件”→“系统终端”命令。2.方法2在图形桌面环境下,右击桌面空白处选择“打开终端”命令下一页返回任务一启动Shell【理论知识】LinuxShell是一种程序,是一个介于用户和Linux内核之间的程序,有了它,用户就能通过键盘输入指令来操作计算机了。Shell会执行用户输入的命令,并且在显示器上显示执行结果,这种交互的全过程都是基于文本的。这种面向命令行的用户界面被称为CLI(CommandLineInterface)。在图形化用户界面(GUI)出现之前,人们一直是通过命令行界面来操作计算机的。现在,基于图形界面的工具越来越多,许多工作都不必使用Shell就可以完成了。然而,专业的Linux用户认为Shell是一个非常有用的工具,学习Linux时一定要学习Shell,上一页下一页返回任务一启动Shell至少要掌握一些基础知识和基本的命令。目前,主流的Shell主要有以下几种:BashShell,CShell,KornShell,PerlShell。BashShell是最流行的一种Shell,大多数Linux版本对它都提供默认安装。在这里,建议选用BashShell,本书所用到的程序都是用BashShell写的。BashShell是一个比较老的备用版本,它几乎在所有可运行Linux程序的计算机上都可获得。各个版本的Linux几乎都支持BashShell。可以将一系列经常使用的Linux命令存储在一个文件中,Shell可以读取这个文件并执行其中的命令,这样的文件被称脚本文件。Shell脚本允许输入/输出、操纵变量、上一页下一页返回任务一启动Shell控制流程等。执行Shell脚本,有如下几种方法。(1)运行/bin/bash命令并且把脚本文件名作为它的参数。例:$/bin/bashmyfile命令告诉Shell要使用BashShell来执行脚本。(2)为脚本文件加上可执行的权限。然后在$提示符后直接输入脚本文件的名字来执行该Shell脚本。$chmodu+xmyfile$./myfile上一页下一页返回任务一启动Shell(3)最常用的一种方法是使当前的Shell使用Bash执行脚本,而不管当前的Shell版本是什么。#!/bin/bash上一页返回任务二编写一个简单的Shell程序【任务描述】用以下内容建立一个名叫hello的文件,并执行它,查看结果。echo"hello,"echo"world!"echo"thisismyfirstShellfile."【任务实施】(1)打开vi编辑器。(2)按图7−1所示,输入语句,并保存文件,文件名为hello。(3)输入以下语句,执行这个文件。下一页返回任务二编写一个简单的Shell程序$bashhello执行结果如下。Hello,world!thisismyfirstShellfile.【理论知识】1.echo命令echo命令用于在屏幕上显示消息。例如:$echo"Helloworld!"Helloworld!$上一页下一页返回任务二编写一个简单的Shell程序echo命令在屏幕上显示括在“”内的文本。默认情况下,echo显示完文本后光标会移动到下一行。也可以使用−n选项,把光标保持在同一行。例如:$echo–n"Helloworld!"Helloworld!$2.插入注释在Shell脚本中可以包含注释,通过关键字#来注释一条语句。当Shell遇到#时,将会忽略该行的内容。上一页下一页返回任务二编写一个简单的Shell程序例:#thisismyfirstShellfile.echo"hello,"echo"world!"在这个例子中,第一行是一条注释,它将被Shell忽略,而且不产生任何输出。上一页返回任务三统计文件中的单词数【任务描述】将从键盘输入的一串职工信息保存在文件中,统计职工数,并将职工信息输出至屏幕,并要求用字母m代替1显示。【任务实施】(1)启动Shell,并在$提示符后输入以下语句:cat>testfile(按Enter键)。(2)在光标处输入以下数据(必须要换行)。zhang1li2wang1xu1下一页返回任务三统计文件中的单词数yang2按Ctrl+D键结束输入。(3)打开vi编辑器。(4)按图7−2所示,输入语句,并保存文件,文件名为count。(5)输入以下语句,执行这个文件。$bashcount可以看到执行结果如下。zhang1li2wang1上一页下一页返回任务三统计文件中的单词数xu1yang25zhangmli2wangmxumyang2【理论知识】1.标准输入/输出文件在Linux中,每一个进程都有3个特殊的文件描述指针:上一页下一页返回任务三统计文件中的单词数标准输入(StandardInput,文件描述指针为0)、标准输出(StandardOutput,文件描述指针为1)、标准错误输出(StandardError,文件描述指针为2)。1)标准输入文件在Linux中,当用户执行需要输入的命令时,Shell把键盘作为默认的输入源,键盘称为标准输入文件。看下面这个例子,它从键盘读入一个数,并将其输出到屏幕。$readm8$echo$m8上一页下一页返回任务三统计文件中的单词数在这个例子中,第一行是用来从键盘读入一个数并赋给变量m,第二行是用户输入的值,第三行是用来输出这个变量的值。2)标准输出文件Shell把显示器作为它执行的任何命令输出的默认目的地,显示器称为标准输出文件。例:$lsls命令显示目录中的文件和子目录的名称。Shell执行此命令,并将结果输出到标准输出文件。3)标准错误文件Shell程序在显示器上显示错误消息,上一页下一页返回任务三统计文件中的单词数对于产生错误可能的原因有:无效的命令,没用许可的命令。显示器也是标准错误文件。2.重定向重定向改变关于标准输入/输出及错误的分配。当使用了重定向以后,命令的输入可从非键盘的文件中取得。同样地,命令的输出或错误可写到文件中或打印出来,而不在显示器上显示出来。有3种重定向:输入重定向、输出重定向、错误重定向。1)输入重定向输入重定向用来代替来自标准输入的文件,可来自磁盘文件的标准输入。上一页下一页返回任务三统计文件中的单词数例:$readm<file1<表示输入重定向是来自于硬盘上文件file1,read命令将把文件file1的第一行内容赋给m变量。2)输出重定向输出重定向也就是将某个命令执行后应该出现在屏幕上的数据,传输到其他地方,如文件、打印机等。当输出重定向到文件时,在输出发送到文件之前,先作为空文件创建在磁盘上。但是如果文件已存在,则在输出写入文件之前会先删除文件中的内容。例:$ls>allfile也可使用以下带文件描述符的命令。上一页下一页返回任务三统计文件中的单词数$ls1>allfile$ls1>>allfile上例中的1表示文件描述符,它不是必须的,但是可使命令更清晰。>或>>意义相同,但>>是将新的数据添加至文件的末尾。3)错误重定向错误重定向可将错误消息不显示在屏幕上,而输出到文件中。例:$catmyfile2>errorfilecat命令的含义是输出文件myfile的内容,当文件不存在时,会输出错误信息。注意这里的2是必须的,上一页下一页返回任务三统计文件中的单词数代表标准错误输出,可使用2>或2>>。3.管道在Shell程序执行时,会出现输出的数据。那么,如果有一些数据必须经过几次处理之后才能得到所想要的格式,这时可采用管道命令。Linux系统允许前一次的输出成为后面一条命令的输入。管道命令“|”的前后都是“命令”。图7−3说明了管道的含义。下面看一看基本的管道命令。1)grep过滤器grep过滤器会分析一行消息,若其中有需要的消息,则会将一行数据取出。上一页下一页返回任务三统计文件中的单词数格式:grep模式[文件名]例:$grep"hello"myfileHello,everyone!$这个例子中的文件名是任选的,没有文件名,grep认为是标准输出;双引号也是可选的。每当用户输出一行,grep会寻找该行的模式,如果匹配,则显示该行。当用户按Ctrl+D键时则输入结束,停止执行。例:$grep"hello"hello,everyone!上一页下一页返回任务三统计文件中的单词数hello,everyone!Iamjack.Whoareyou?<ctrl>d在这个例子中,当用户输入“hello,everyone!”“Iamjack.”“Whoareyou?”时,grep寻找单词hello,当它找到单词hello时,它又在屏幕上显示“hello,everyone!”,这也是为什么会在输出中看到两行相同的语句的原因。2)cutcut也就是“切”的意思,上一页下一页返回任务三统计文件中的单词数言下之意就是将一段消息的某一部分“切”出来。
格式:cut[选项][文件名/s]选项有以下3种。−d:后面接分隔符,一般与−f一起使用。−c:以字符为单位取出固定的字符范围。−f:取出特定的几段(列)。例:$cut–d':'−f3logname本例中,cut命令用来抽取logname文件中的第三列字符串,字段分隔符是‘:’。运行结果如图7−4所示。例:$cut–c1−5logname上一页下一页返回任务三统计文件中的单词数该命令将显示文件logname中前5个字符,显示结果为:zhang。例:$cut–d':'–f1,6logname该命令显示文件logname第1列和第6列,显示结果为:zhang:678。3)wc过滤器用wc可统计文件中或标准输入中行、单词及字符的个数。格式:$wc[−lwm]各参数的意义如下:−l:仅显示l行。上一页下一页返回任务三统计文件中的单词数−w:仅显示w字(英文)。−m:仅显示m字符。例:$wcusername4417username文件username有4行、4个单词、17个字符。例:$catusername|wc4417本例中使用了管道,统计了文件username中的行数、单词数及字符数。wc是相当有用的统计命令,例如,要知道当前用户文件中的用户数,就可以使用wc命令来统计,命令为:catusername|wc−l,上一页下一页返回任务三统计文件中的单词数因为在文件里一行表示一个用户,所以知道行数就知道用户数了。4)tr命令tr可以用来删除一段信息中的文字,也可以进行转换,将一种字符转换为另外一种字符。格式:$tr[−ds]字符串1……各参数的意义如下:−d:删除消息中的字符串1。−s:替换重复的字符。例:$tr':'''<logname。该命令将会在标准输出上显示该文件的内容,并用空格替代:上一页下一页返回任务三统计文件中的单词数显示。要注意的是,仅仅在输出时:被换为了空格,而该文件的内容并没有改变。运行结果如图7−5所示。tr命令还可进行大小写转换。例:$tr'[a−z]''[A−Z]'<lognameZHANG:1234:LI:1234:ZHANG:678:WANG:895)管道命令示例例如:用last命令查看最近的登录者的信息,要求仅显示用户名称。$lastzjxpts/2:0.0SatJul1115:26stitllloggedin上一页下一页返回任务三统计文件中的单词数zjxpts/2:0.0SatJul1114:40–15:26(00:45)zjxpts/2:0.0SatJul1114:37–14:39(00:01)$last|cut–c1−5zjxzjxzjx例如:用管道命令统计文件username中的字符、行、单词数。$catusername|wc结果:4417上一页返回任务四读入数并保存至文件【任务描述】需要从键盘读入一位职工的年龄,并将其保存入文件中,以便以后查阅,要求必须使用变量。通过本任务,可学会变量的使用。【任务实施】(1)打开vi编辑器。(2)输入以下内容,并保存文件,文件名为varfile。echo"pleaseinputoneage:"readageecho$age>agefilecatagefile下一页返回任务四读入数并保存至文件(3)在提示符后输入以下命令。$bashvarfile执行结果如下。Pleaseinputoneage:4545(4)运行结果如图7−6所示。【理论知识】1.变量的分类Linux使用以下两种变量。局部变量:由用户建立,仅供用户所设计的程序使用。上一页下一页返回任务四读入数并保存至文件环境变量:由用户或他人建立,所有用户都可以使用。当程序需要保存数据时,可以声明一个局部变量,这个局部变量只能在被声明的程序中使用。当启动Linux系统时,可以看到一连串的变量,这些变量就是环境变量,它们包含许多关于用户和计算机的信息。2.创建变量在BashShell中,变量不是必须被显式声明的,可以在任何时候通过简单的赋值来创建。所有的变量都由字符串组成创建变量的语法为:<变量名>=<值>要注意的是:当声明一个变量时,赋值操作符(=)的两边必须没有空格。上一页下一页返回任务四读入数并保存至文件例:$message="helloworld"Shell脚本中的变量不能被声明为整型或字符型,在Linux中的所有变量都被当做字符串,但是,可以进行数学运算。任何在脚本中创建的变量,当脚本停止执行时都会消失,但在提示符下创建的变量会被保留,直到系统注销终止Shell时为止。3.给变量赋值1)引用变量$符号用于引用一个变量的内容。将一个变量的值赋给另外一个变量的命令是:变量1=${变量2},“{}”是可省的例:$x=8上一页下一页返回任务四读入数并保存至文件$y=$x$echo$y2)将键盘输入值赋给变量例:$readmynamestudent在本例中student被赋给了变量myname。可以通过下面的echo命令显示该变量的值。$echo$myname有时候变量名很容易与其他文字混淆。例:order=2echo"thisisthe$ordernd"上一页下一页返回任务四读入数并保存至文件屏幕并不会输出“thisisthe2nd”,而仅仅输出“thisisthe”。Shell会去搜索变量ordernd的值,但是这个变量却没有值。可以使用花括号来告诉Shell要输出的是order变量。order=2echo"thisisthe${order}nd"将输出:thisisthe2nd。3)expr命令绝大部分Shell不支持数字变量,所有变量都被当作字符串处理。那么要操作一些数字怎么办呢?可以使用expr命令,该命令用于求算术表达式的值。上一页下一页返回任务四读入数并保存至文件例:$expr5+5该命令将会显示10,要注意的是:在运算符(+)两边必须有空格,也可以使用变量实现。例:$a=5$b=7$expr$a+$b124)算术展开可以在$((…))中含一个表达式,可以用下面的格式来计算一个表达式的值。$((expression))上一页下一页返回任务四读入数并保存至文件例:$echo$((12+32))44也可以在括号中含有变量。例:$a=10$b=30$echo$((a+b))4.环境变量上一页下一页返回任务四读入数并保存至文件由于Linux是多用户系统,每个用户都分配一个Shell的副本用于工作。Shell也有称为环境变量的特殊变量,通过这些变量,用户可以配置环境。环境变量都是大写的,本书不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。一些环境变量的例子有:HOME、PS1、PS2、PATH、LOGNAME、SHLVL和SHELL。上一页返回任务五运算符的使用在日常生活中,会不经意地用到一些运算符,如去超市购物、菜场买菜,会用到加、减等运算符。在Shell编程中,也仍少不了它们的身影,唯有它们,程序才能鲜活、生动起来【任务描述】有一个神奇的智能计算器,当小孩输入两个整数时,它会自动输出这个数的和。小孩觉得太好了,他再也不怕妈妈出加法题了。现请读者帮小孩实现这样的神奇的智能计算器。【任务实施】(1)打开vi编辑器。(2)在vi编辑器中输入语句,并保存文件,文件名为calculator,语句内容如图7−7所示。下一页返回任务五运算符的使用(3)退出vi编辑器,并在提示符后输入语句:bashcalculator。(4)运行结果如图7−8所示。【理论知识】在让计算机修改一些数据的时候,必须让计算机知道用一个或多个运算符执行某种操作。Linux共有3类运算符:算术运算符、逻辑运算符和比较运算符,还包括test和[]命令1.算术运算符算术运算符可以让变量进行加、减、乘、除等操作。算术运算符主要有+、−、*(乘)、/(除)、%(求余)。例:$leta=2上一页下一页返回任务五运算符的使用$letb=9$letsum=$a+$b$echo$sum提示/备注:等号两边没有空格,而加号两边有空格,且对所有的运算符来说两边都要求有空格。2.逻辑运算符可以用逻辑运算符判断一个表达式的真和假。真值是任何一个非零的值,假值就是零。表7−1
列出了常用的逻辑运算符。例:$s=3$expr$s!=4上一页下一页返回任务五运算符的使用1$expr$s!=303.比较运算符比较运算符通过比较两个数或者两个字符串的值来得出它们的关系。表7−2列出了常用的比较运算符。4.test和[]命令test命令用于求值表达式,并返回0(true)或1(false),test关键字也可用[]代替。格式:test表达式上一页下一页返回任务五运算符的使用[表达式]例:$s=4说明:“=”的两边必须没有空格。$test$s=4说明:“=”的两边必须有空格。$echo“$?”0指令说明如下:s=4建立一个名为s的变量,并将值4赋给它。test$s=4让计算机判断变量s的值是否等于4。echo“$?”将test返回的值显示在屏幕上。上一页下一页返回任务五运算符的使用0就是显示的结果。思考:第二条指令还可怎么写?提示:可以写成[$s=4],但必须要注意的是,“[”之后和“]”之前必须要有空格。上一页返回任务六控制程序流程人们把决定建立在符合某种条件的基础上,现在有足够的钱去旅行吗?如果没有,那只有待在家里了。Shell程序通过某种条件测试,然后得出结论,也是做决定的实例。在本任务中,将介绍如何根据条件让程序做出相应的决定。【任务描述】小明今年五岁了,他很喜欢做有关数字的游戏。可是他家人很忙,没有时间与他一起游戏,读者能帮帮他吗?能与小明一起游戏吗?读者可编写一个加法游戏的程序帮助小明实现这一需求。【任务实施】下一页返回任务六控制程序流程(1)打开vi编辑器。(2)输入以下代码,并保存文件,保存的文件名为user。echo"&&&这是一个幼儿学数学的软件&&&"echo"练习共六题"while[true]doecho"1.加法练习"echo""echo"2.退出"readscase$sin上一页下一页返回任务六控制程序流程1)foriin24doforjin135doecho–n$i+$jecho–n"=请输入答案:"readanif[$an–eq$(($i+$j))]thenecho"答案正确,你真聪明!"上一页下一页返回任务六控制程序流程elseecho"答案不正确,不要泄气!"fidonedone;;2)break;;*)echo"输入错误,请重新选择!!"上一页下一页返回任务六控制程序流程;;esacdone(3)在提示符下输入以下命令。$bashuser运行结果如图7−9所示。分析:在这个任务中使用到了循环的嵌套,在设计界面时,一般都会用while循环,并通过break退出循环。【理论知识】1.if语句当需要程序判断一个条件是真还是假时,可以使用if语句。上一页下一页返回任务六控制程序流程if语句告诉程序:“如果条件为真,则执行这些指令,否则跳过这些指令。”语法:if[条件]then指令1else指令2fi如果条件为真时,程序将执行指令1;如果条件为假时,程序将执行指令2。上一页下一页返回任务六控制程序流程例:$echo"pleaseinputonenumber:"$readanswer8$if[$answer–glt10]>then说明:当指令没有全部输完且按了回车键时,提示符就会变为“>”。>echo"thenumber>10">else>echo"thenumber<=10">fithenumber<=10上一页下一页返回任务六控制程序流程$指令说明如下。第一条语句的作用是输出一条提示信息,提示用户应输入一个数。第二条语句的作用是从键盘读入一个数,并将数赋给变量answer。8是用户从键盘输入的值。第三条if语句的作用是当用户输入的数大于10时,给出提示信息“thenumber>10”,当用户输入的数小于或等于10时,给出提示信息“thenumber<=10”。Linux还提供了if...elif构造,语法如下。if(条件)上一页下一页返回任务六控制程序流程then指令elif条件then指令else指令fi在这个格式中,elif等同于“elseif”,一个if构造可以有多个elif语句,但是只能有一个else和一个fi来终止该构造。else部分是可选的。例:echo"enteranumber"readno上一页下一页返回任务六控制程序流程if[$no–let5]thenecho"thenumber<=5"elif[$no–ge5–a$no–lt10]thenecho"thenumberisbetween5and10"elseecho"thenumber>=10"fi在上面的例子中,当执行Shell脚本时,它要求用户输入一个数字。如果该数字小于等于5,上一页下一页返回任务六控制程序流程则显示消息“thenumber<=5”;如果该数字在5和10之间,则显示消息“thenumberisbetween5and10”;如果该数大于等于10,则显示消息“thenumber>=10”。2.case语句假设要设计这样一个程序,对不同年龄的用户显示不同的信息。当然可以使用if语句来设计这样的程序,不过这段很难让人看懂,如果想获得同样的结果又不想太复杂,那么可使用case语句。case...esac根据变量的值来执行一组特定指令,常常用来替代if语句。case语句的功能是:把case右边的值和半括号“)”左边的值比较,其语法规则如下。case变量名in上一页下一页返回任务六控制程序流程值1)指令;;值2)指令;;esaccase语句中,以case开头,以esac结尾。它首先检查变量的值,如果它与值1相等则执行第一组指令;如果它与值2相等则执行第二组指令,以此类推。在每组指令的最后需要用两个分号(;;)。上一页下一页返回任务六控制程序流程在使用case语句时,必须要注意以下几点。(1)程序要匹配的值必须包含一个或多个字符。(2)可以用一个变量或值作为程序要匹配的值。(3)一个变量或值的右边必须以半括号“)”结尾。例:echo"inputonenumber(1−3):"readncase$nin1)echo"hi,child!";;2)上一页下一页返回任务六控制程序流程echo"hi,student";;3)echo"hi,everyone";;esac程序运行结果示例如下。inputonenumber(1−3):2hi,student在case语句中,如果用户没有给程序提供所需要的匹配值上一页下一页返回任务六控制程序流程那么程序就找不到它所要匹配的对象。不过,可以使用保留字符(*)提供一种默认情况,让程序在此情况下执行一些操作。例:echo"inputonenumber(1−3):"readncase$nin1)echo"hi,child!";;2)echo"hi,student"上一页下一页返回任务六控制程序流程;;3)echo"hi,everyone";;*)echo"sorry,yournumberisnotonmylist."esac如果case语句中没与变量相匹配的值时,就会执行最后一条指令,显示信息:sorry,yournumberisnotonmylist。case语句经常与程序的用户界面一起使用。上一页下一页返回任务六控制程序流程用户界面等待用户输入值,当用户输完选项后,程序就用case语句把该选项与某些特定的值做比较。提示/备注:建议用缩进格式书写每一个嵌套语句,这样写便于阅读程序,是一种良好的编程风格。3.while语句有时会要求计算机重复执行同一条或同一组指令多次,可以根据需要把那些指令复制到程序中其他新的语句行上来达到这种目的。不过,更好的方法是让计算机重复执行那些已有的指令,这个过程称为循环。while循环的一般格式如下。while[条件]上一页下一页返回任务六控制程序流程do指令done当程序遇到一个while循环时,首先检测它的条件,询问它“这个条件是真还是假?”当条件为真时,程序才会读入while循环体中的指令。例:a=1while[$a–le10]doecho$a((a=$a+1))上一页下一页返回任务六控制程序流程done上面这个代码将会显示1~10的数字。4.until语句until循环与while循环相反,它是当条件成立时,就终止循环,否则就持续执行循环程序段。格式:until[条件]do指令Done例:a=1上一页下一页返回任务六控制程序流程until[$a–gt10]doecho$a((a=$a+1))done上面这部分代码将会显示数字1~10。5.for语句当知道循环执行的具体次数时,可以使用for循环。格式:for变量in值列表do上一页下一页返回任务六控制程序流程指令done或者:for((表达式1;表达式2;表达式3))do指令done例:forcustomerinTomJackKittydoecho"Hello,$customer."done上一页下一页返回任务六控制程序流程这个程序的运行过程如下。(1)先从值列表中取出第一个值,并将它赋给变量customer。(2)然后,程序将欢迎词输出在屏幕上。(3)程序返回,再取第二个值将它赋给customer。这个程序一直运行到值列表中的值使用完,forin循环终止例:for((a=1;a<=10;a=a+1))doecho$adone这个例子将会显示1~10的值,它的运行过程如下:上一页下一页返回任务六控制程序流程a的值被初始化为1,然后再检查a的值是否小于或等于10;若是的话,则执行echo命令,然后再将a的值加1,继续执行直到a的值大于10为止。6.break和continue命令break和continue的使用是与while循环紧密相连的。break命令可以快速退出循环,continue可以使程序跳过循环中continue后面的其余指令,并返回到循环的开始。比较以下两个程序段的执行结果。上一页下一页返回任务六控制程序流程上一页下一页返回任务六控制程序流程【知识拓展】在创建菜单界面时,通常都要用到while循环。在任何程序菜单中,程序执行的顺序如下。(1)显示菜单。(2)选择菜单项。(3)运行相关程序。(4)返回菜单进一步选择。在设计菜单程序时,最简单的方法就是把所有的指令都放在while循环中,在程序每次执行完用户的选择后,返回到while循环,重新开始。上一页返回任务七使用正则表达式正则表达式是一种处理字符串的方法,以行为单位进行字符串处理,通过一些特殊符号的辅助,可以让用户轻松搜索/替换一些字符串。目前有许多软件都支持正则表达式,最常见的是“邮件服务器”,通过正则表达式,可以删除一些广告信件及垃圾信件。【任务描述】现有一个读者借阅文件book,要求查出名叫Jack的同学的所有借阅信息。【任务实施】(1)打开Shell,进入提示符状态。(2)在提示符后输入以下语句,并按回车键。下一页返回任务七使用正则表达式$grep–n'Jack'book3)可以看到,语句的运行结果如下。1:2009−6−1Jackc#program3:2009−6−2Jacksql20085:2009−6−3Jackthinkinginjavabook文件的内容如下。2009−6−1JackC#program2009−6−1Tomxml2009−6−2Jacksql20082009−6−2lilyxml2009−6−3Jackthinkinginjava上一页下一页返回任务七使用正则表达式2009−6−4lily在做该项目时,可先用vi建立该book文件。【理论知识】正则表达式是处理字符串的标准表示方式,它需要一些工具程序来支持。支持正则表达式的常用的工具有:awk、ed、grep、sed及vi等,不过这些工具对正则表达式的支持程序是不同的。1.正则表达式操作符常用的正则表达式操作符如表7−3所示。2.正则表达式使用示例一个最简单的具有字符串选取功能的工具程序是grep。上一页下一页返回任务七使用正则表达式在grep中使用正则表达式可以将grep的功能发挥得淋漓尽致。下面就通过一些例子来说明正则表达式在grep中的使用。首先来了解一下grep的语法。格式:$grep[−acinv]“搜索字符串”文件名参数的含义如下。−a:在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省大理白族自治州2027年高三冲刺模拟物理试卷(含答案解析)
- 2026年消毒供应中心上半年工作总结
- 工程监理主管2026年二季度施工现场监理统筹总结
- 辖区危险水域安全警示宣讲课件
- 2026年秋季高三提前开学第一课 化学冲刺复习方法
- 2026年北师大版小学三年级英语上册Lesson8《Letters》说课教案
- 2026年北师大版三年级语文《滥竽充数》课时教案
- 心肌梗死的一般治疗
- 工地现场临时用地租赁协议 施工堆放场地合同
- 慢阻肺肺康复护理查房
- 2024版人教版初中语文九上名著《唐诗三百首》复习题
- GB/T 17623-2026绝缘油中溶解气体组分含量的气相色谱测定法
- 2026广东珠海市斗门区招聘公办中小学教师134人(编制)考试参考试题及答案解析
- 2026年中国时尚耳夹数据监测研究报告
- 广西壮族自治区梧州市2026年高三第一次模拟考试物理试卷(含答案解析)
- 2026广州医药集团有限公司春季校园招聘笔试历年典型考点题库附带答案详解
- 上海市二级注册建造师继续教育(建筑工程)考试题库
- (2025年)市场监管法律知识复习试题考前模拟测试题附答案
- 新疆建设工程消防设计审查、验收常见问题技术解析(2024年)
- pe管道顶管施工方案
- 《DLT 1231-2018电力系统稳定器整定试验导则》专题研究报告深度
评论
0/150
提交评论