http://licong.blog.51cto.com/542131/205615《shell学习笔记一--总括》中我们粗略介绍了一下sehll的六大功能,本篇我们来详细讨论一下功能一:执行程序.
上篇文章中我们较为详细的介绍了一下sehll解释命令行的规则和顺序,本篇我们将详细描述sehll中经常用到的一些程序(也称命令、工具).当然,其中会参插很多前面讲过的.
Shell脚本中经常用到的工具有
拥有帝国一切,皆有可能。欢迎访问phome.netcut、tr、grep、sort、uniq、re、sed、awk等.Re不是一个程序,我们认为他是shell中一个重量级的工具.对这些工具的使用越精通,编写shell脚本解决问题就越容易!
拥有帝国一切,皆有可能。欢迎访问phome.netre/sed/awk是shell中最难的一部分内容(至少笔者这么认为),在我的其他文章中专门对他们进行过讨论,这里将不做介绍.
一、cut
如果要从数据文件或者命令的输出中截取(也就是剪出)各种各样的数据域,cut命令都会派上用场,命令的一般格式为
cut –cchars file
其中,chars指定想从文件的每一行中截取哪些文字.这可以是一个数字,如
拥有帝国一切,皆有可能。欢迎访问phome.net-c5就是把第5个字符截取出来;用逗号分隔的数值列表,如-c1,13,50把第1、13和50个字符截取出来;或用破折号分隔的数值范围,如-c20-50截取出第20到50之间的字符,包括他们自己.如果要把到行尾的字符全部截取出来,可以用数值范围,缺掉第2个参数,因此
拥有帝国一切,皆有可能。欢迎访问phome.net
cut –c5- data
把data文件每一行中从第5个字符到行尾的内容全部截取出来了,并把结果写入标准输出(屏幕).
如果不指定file参数,cut从标准输入(通常是键盘)读取输入,这以为着可以把cut命令用作管道线中的过滤器.我们再看who命令的输出:
$who
拥有帝国一切,皆有可能。欢迎访问phome.netroot tty2 2009-08-17 16:59
root pts/0 2009-09-17 23:50 (192.168.1.130)
stu1 pts/2 2009-09-27 15:26 (192.168.1.130)
$who | cut –c1-8
root 2009-08-17 16:59
root 2009-09-17 23:50 (192.168.1.130)
stu1 2009-09-27 15:26 (192.168.1.130)
$
选项-c1-8,18-意思是截取行中的第1到
拥有帝国一切,皆有可能。欢迎访问phome.net
http://licong.blog.51cto.com/542131/204226《sed学习笔记二--高级命令》
http://licong.blog.51cto.com/542131/151976《awk学习笔记》
再重复一次,以上工具掌握得越灵活,编写shell脚本就越容易.
拥有帝国一切,皆有可能。欢迎访问phome.net |