第十一章——Shell编程

一.基础正则表达式

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

2.基础正则表达式:

二.字符截取命令

1.cut字段提取命令:

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

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

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

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

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

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

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

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

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

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

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

进行条件筛选

4. sed命令:

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

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

在第一行后追加

在行前插入

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

 不加行号全文找

三.字符处理命令

1.排序命令sort:

2.统计命令wc:

四.条件判断

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

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

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

4.两个整数之间比较:

5.字符串的判断:

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

6.多重条件判断:

五.流程控制

1. if语句:

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

                                    例子:判断分区使用率:

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

例子2:判断apache是否启动

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

2. case语句:

   

3. for循环:

更利于系统的维护和管理

4. while循环:

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

最新文章

  1. gif jpg bmp png的区别
  2. 临时存存储页面上的数据---Web存储
  3. iOS原生APP与H5+JS交互////////////////////zzzz
  4. eclipse提高效率 MAC
  5. Python基础3- 变量与数字
  6. ArcGIS如何将表连接到空间数据上
  7. CoreAnimation-07-CAAnimationGroup
  8. MFC学习 多线程
  9. 在MySQL中使用init-connect与binlog来实现用户操作追踪记录
  10. 隐式Intent实例
  11. 【玩转开源】BananaPi R2 —— 第一篇 Openwrt安装
  12. SpringBoot使用注解实现事务管理
  13. Windows 安装JDK
  14. vivo怎么录屏 手机录制屏幕详细教程
  15. jmeter使用Beanshell预处理器从指定列表中获取随机值
  16. Python的Django
  17. 关于byte[]与string、Image转换
  18. ie6兼容性处理
  19. 如何学习OpenStack
  20. 【朱-刘算法】【最小树形图】hdu6141 I am your Father!

热门文章

  1. [matlab] 4.M函数
  2. ASP.NET MVC]WebAPI应用支持HTTPS的经验总结
  3. hive 压缩 差不多出来数据 各种压缩 数据格式
  4. 【css】max-height,min-height,height一起使用时,优先级问题
  5. 动态二维数组赋值及for循环遍历和toString遍历
  6. 淡旺季机票的价格问题(switch语句与if-else语句嵌套)
  7. easyui的浮动panel不跟随所在页面一起滚动的问题
  8. VBS弹出来的对话框如何置顶!--果然技巧
  9. BZOJ 5467 Slay the Spire
  10. Java获取文件Content-Type的四种方法