第十一讲Linux——Shell编程学习
一、基础正则表达式
1、正则表达式与通配符的区别
适用范围 匹配范围 正则表达式 字符串 包含匹配 通配符 文件名 完全匹配
2、基础正则表达式
二、字符截取命令
1、cut字段提取命令
举例说明:
cut命令的局限,这里df -h的输出中使用了“空格作为分隔符”,所以造成了cut的局限性
2、printf命令
最常用的就是:\n,\r,\t
举例:
3、awk命令
awk是一行一行读取并处理数据。
举例:
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"}'
4、sed命令
sed命令主要是针对行进行操作。
举例:
对比下面两行代码,体现sed -n的作用
因为这里面没有使用-i选项 ,所以只会更改sed输出内容而不会更改文件本身。
使用-i直接写入文件
三、字符处理命令
1、排序命令sort
2、统计命令wc
四、条件判断
1、按照文件类型进行判断
最常用的就是-d,-e,-f
2、按照文件权限进行判断
最常用的就是-r,-w,-x
3、两个文件之间的比较
4、两个整数之间的比较
equal | eq |
相等 |
not equal | ne | 不相等 |
greater than | gt | 大于 |
less than | lt | 小于 |
greater than or equal | ge | 大于等于 |
less than or equal | le | 小于等于 |
5、字符串的判断
6、多重条件判断
五、流程控制
1、if语句
(1)、单分支if条件语句
(2)、双分支if条件语句
2、case语句
3、for循环
4、while循环