超酷小 发表于 2018-8-24 08:34:52

shell脚本语言编程进阶实战

  古人云“工欲善其事,必先利其器”。可以说,shell脚本语言编程就是系统管理员的一个编程利器、一个好帮手。熟练掌握和运用shell脚本语言编程,对于一个合格系统管理员来讲,可以说是基本素养。
  shell脚本语言,可实现复杂程序逻辑,数据处理。除去强大的编程功能外,其无需编译环境的解释运行的特色,更显示其强大的灵活性。
  学习shell编程,好处很多,但是困难是什么呢?有的说,没有shell编程学习范例。其实,在linux操作系统内,存在大量的脚本学习范例可供学习借鉴。
  有的讲,没有编程需求。仔细回想一下,很多工作包含大量复杂的操作,是否有必要通过逻辑条件判断和数据抽取处理实现,并封装成自动化的脚本,以供今后重复调用。
  在掌握shell编程的基础指令、正则表达和逻辑判断后,通过一些例子的练习,实现用户需求后,就可以达到shell脚本语言编程能力的进一步提升。.
  本文向给出以下思路和框架。
  实战.格式化文本数据
  一些指令的多行输出结果,或一些文件的多行内容,可能已经结构化好了,但大部分没有格式化。所以编程进阶面对的一个重要问题,是抽取有用的数据并格式化数据,以便后续的加工处理。
  格式化文本类数据基本方法如下:
  (1)筛选数据
  主要是运用grep、sed,抽取有用内容、剔除无用内容
  # df -k|sed 1,2d剔除指令输出中的前两行
  # cat /etc/host| grep -v ^# |grep -v ^$   剔除文件中的空行和注释行
  # cat /etc/host| grep -v ^# |grep -v ^$   剔除文件中的空行和注释行
  # df -k |grep '%'抽取指令输出中带%且为2位数的行
  # awk -F ":" '{print $1}' /etc/passwd抽取文件的第一列
  # df -k |grep '%'|sed -e 's/%//g'剔除指令输出中中%字符
  #sed -i 's/APPLICATION//g' /etc/hosts剔除文件中APPLICATION字符
  (2)结构化数据
  主要利用awk的指定字段分割符方法,完成数据的结构化
  # ip a |grep "
页: [1]
查看完整版本: shell脚本语言编程进阶实战