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]