第十一讲Linux——Shell编程学习

一、基础正则表达式

1、正则表达式与通配符的区别

  适用范围 匹配范围
正则表达式 字符串 包含匹配
   通配符 文件名 完全匹配

第十一讲Linux——Shell编程学习

2、基础正则表达式 

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

二、字符截取命令

1、cut字段提取命令

第十一讲Linux——Shell编程学习

举例说明: 

第十一讲Linux——Shell编程学习第十一讲Linux——Shell编程学习

cut命令的局限,这里df -h的输出中使用了“空格作为分隔符”,所以造成了cut的局限性 

第十一讲Linux——Shell编程学习

2、printf命令

第十一讲Linux——Shell编程学习

最常用的就是:\n,\r,\t

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

举例:

第十一讲Linux——Shell编程学习第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

3、awk命令

awk是一行一行读取并处理数据。

第十一讲Linux——Shell编程学习

举例:

第十一讲Linux——Shell编程学习 第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习第十一讲Linux——Shell编程学习

awk默认识别的分隔符:制表符和空格

需要使用自己定义的分隔符,需要采用FS

由于“awk是一行一行读取并处理数据”,所以需要在读取数据之前就得把提前设定好分隔符(添加BEGIN)。

否则,先读入了第一行,没有用设定好的分隔符(采用了默认分隔符),后面的几行才开始采用设定好分隔符。

对比:

cat /etc/passwd | grep "/bin/bash" | awk '{FS=":"} {printf $1 "\t" $3 "\n"}'

cat /etc/passwd | grep "/bin/bash" | awk 'BEGIN {FS=":"} {printf $1 "\t" $3 "\n"}'

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

 

4、sed命令

sed命令主要是针对进行操作。

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

举例: 

第十一讲Linux——Shell编程学习

对比下面两行代码,体现sed -n的作用

第十一讲Linux——Shell编程学习第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习 第十一讲Linux——Shell编程学习

因为这里面没有使用-i选项 ,所以只会更改sed输出内容而不会更改文件本身。

第十一讲Linux——Shell编程学习 第十一讲Linux——Shell编程学习第十一讲Linux——Shell编程学习

 

第十一讲Linux——Shell编程学习 第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

使用-i直接写入文件

三、字符处理命令

1、排序命令sort

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习第十一讲Linux——Shell编程学习

2、统计命令wc 

第十一讲Linux——Shell编程学习

 

四、条件判断

1、按照文件类型进行判断

最常用的就是-d,-e,-f

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习第十一讲Linux——Shell编程学习

 2、按照文件权限进行判断

最常用的就是-r,-w,-x

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

 3、两个文件之间的比较

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

4、两个整数之间的比较 

第十一讲Linux——Shell编程学习

equal eq

相等

not equal ne 不相等
greater than gt 大于
less than lt 小于
greater than or equal ge 大于等于
less than or equal le 小于等于

 

第十一讲Linux——Shell编程学习

5、字符串的判断

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

6、多重条件判断

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

五、流程控制

 1、if语句

(1)、单分支if条件语句

第十一讲Linux——Shell编程学习第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习 第十一讲Linux——Shell编程学习

(2)、双分支if条件语句 

第十一讲Linux——Shell编程学习

第十一讲Linux——Shell编程学习

2、case语句

 

3、for循环

 

4、while循环