Linux基础学习(11)--Shell编程

第十一章——Shell编程

一.基础正则表达式

1.正则表达式与通配符(*,?,[ ]):

Linux基础学习(11)--Shell编程

2.基础正则表达式:

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

二.字符截取命令

1.cut字段提取命令:

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

空格分割时,不知道空格有多少个,无法分割行数,grep -v取反

2. printf命令(严格说不是字符提取命令,搭配awk使用):

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

printf不能用于直接输出文件内容或用管道符接受上一句的输出,它会把文件当成字符串输出。

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

注:Linux系统无print命令,只有printf,print只能在awk命令里使用。

3.awk命令:(默认能识别的分割符是制表符和空格)

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

注:$0表示一行本身,$1表示文件第一列,awk外是单引号,{}里是双引号

Linux基础学习(11)--Shell编程

 注:print自动在后面加一个换行符,printf不会

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

BEGIN在数据处理之前执行一次

Linux基础学习(11)--Shell编程

END在数据处理之后执行一次

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

FS指定分割符,第一列没有分割(默认为空格),先读入后分割

Linux基础学习(11)--Shell编程

加一个BFGIN在数据处理之前先指定分割符

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

进行条件筛选

4. sed命令:

Linux基础学习(11)--Shell编程

可以从管道符接受数据进行修改,可以直接修改命令的结果(而vim不可以)

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

不加-n会先输出第二行然后输出所有行,一般和-n联立使用输出指定行

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

在第一行后追加

Linux基础学习(11)--Shell编程

在行前插入

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

注:不改变原文件,只修改输出,要修改原文件加-i,加-i时无输出,直接修改了原文件,有一定危险性(最好修改用vim)

Linux基础学习(11)--Shell编程

 不加行号全文找

三.字符处理命令

1.排序命令sort:

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

2.统计命令wc:

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

四.条件判断

1.按照文件类型进行判断:

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

2.按照文件权限进行判断:

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

3.两个文件之间进行比较:

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

4.两个整数之间比较:

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

5.字符串的判断:

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

注:[ ]中括号两边有空格,否则会报错,还有==两边也有空格,不然一直为True输出yes

Linux基础学习(11)--Shell编程

6.多重条件判断:

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

五.流程控制

1. if语句:

           (1)单分支if条件语句:
Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

                                    例子:判断分区使用率:
Linux基础学习(11)--Shell编程
           (2)双分支if条件语句:
Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

例子2:判断apache是否启动

Linux基础学习(11)--Shell编程

(3)多分支if条件语句:

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

2. case语句:

   Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

3. for循环:

Linux基础学习(11)--Shell编程

更利于系统的维护和管理

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

4. while循环:

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

Linux基础学习(11)--Shell编程

注:shell脚本语言(所见即所得)写的所有的脚本都不需要编译就可以直接运行,不是不需要编译,是在执行的同时进行编译,简化了编译过程。好处是编译更加简单,坏处是效率要更慢(主要工作是帮助管理员进行重复操作或运维工作)。

上一篇:CSS3伪类和伪元素


下一篇:wp8 入门到精通 数据库更新字段(一)