BI有感

***********************************************************************
*                              版权声明
*      此文章为ocean所有,版权归ocean所有,任何网
* 站和 媒体转载必须包含此段声明,否则将视为侵权,作
* 者将保留一切权力。此声明为此文章中不可或缺的一部分。
* 作者网名:ocean
* 作者email:ocean@forever.net.cn
* 作者网站:http://www.oceanstudio.net
*                http://sps.oceanstudio.net
* 作者blog:博客园,http://www.cnblogs.com/ocean
*                     Ocean's blog,http://www.oceanstudio.net/sps/blog
* 此文章发表时间:2005年5月16日
************************************************************************

    今天下午去微软做了一个BI(商务智能)的培训,明天还要去培训一天,不过通过今天一下午的培训,觉得收获还是很多的。这篇blog不是讲如何构建BI方案的,而是讲我的一些感想(80%是和BI无关的感想)。

    BI方案在中国并不常见,为什么呢?我想主要在于这两年很多企业都在建立自己的业务系统,业务系统刚刚跑没有多久,这时系统中没有多少数据可以用来分析,而国外10几年前业务系统就很成熟了,所以就需要BI方案来分析自己数十年来的数据,得到有价值的信息。另外一点就是中国的管理方式比较落后,没有这种BI的理念,我们现在大多的业务系统也仅仅为了存储数据,在使用数据上也仅仅做一些简单的查询统计而已,没有涉及到数据挖掘这么深层次的应用。在中国,BI的路并不好走。

    首先对于使用BI的企业来说,通常是大企业,因为本身从BI的解决方案来说,都比较昂贵,并且企业必须有大量的数据,这时BI才有意义,对于很多中小企业,通常一个excel表格就可以搞定,完全用不着BI这种深层次上的东西。所以上BI方案的企业的面不会很广。像银行、证券、电信这种非常大的企业是必须需要BI方案来支持决策的。

    我们姑且不说sql server的价格,仅说一下利用sql server和其分析服务构建一个BI方案的复杂度,从今天下午的培训来看,真正做出这个方案,从技术上来说不是太困难。对于sql server提供的一整套东西来说,也都比较容易使用。从后台有OLAP来支持,前端则有reporting service、office等来支持。在用户的使用习惯上来说也比较容易接受。

    我发现中国的用户大多还是使用office,对于wps,还是很少有人用,当SharePoint出来之后,word、excel的这种协作能力就体现出来了,而这是wps不可能具备的,金山公司也没有能力开发一个SharePoint这样的一个产品。并且现在基于office的解决方案越来越多。记得我最初做系统的时候,还是采用asp/jsp来做一些B/S的业务系统,这些系统应该说仅仅实现了数据的采集、显示和查询。没有太复杂的东西,一个系统80%都是简单的增删改操作。

    现在我在想,为什么我们不用office呢?现在当有一个项目的时候,我首先想能否用office来做一个方案,让用户在word中输入数据,在excel中查看统计分析结果,想想很多东西在excel中做的很好,像透视表这种东西,我们自己开发是做不出来的,而且用户用着习惯,他们大多已经用office了,不需要重新学习一种界面和操作习惯。我们最近的一个系统既是采用word来作为数据录入界面,然后自动从word中提取数据,进行统计分析。想想,用户完全可以脱离我们系统,在家里或者外出办公时在笔记本上写好word文档,回到单位后只要导入word,一切ok了,和在线新建word文档达到一样的效果。B/S能做到吗?不行,因为不能离线。C/S能做到吗?好像可以,但是也有问题,因为你需要在笔记本上装客户端,而我们的方案呢?不需要,因为你的笔记本上有word就可以了,而现在哪台机器上还没有word呢?

    从我个人角度,我是越来越倾向于用Office来作为前端,用SharePoint来进行协作,我们只要做逻辑。我想以后的系统可能是这个样子的,一个系统是一堆Office文档,包括Word文件和Excel文件,放在一个目录下面,这个目录就是一个系统。比如:销售报表.doc,人员列表.xsl,产品列表.xsl,库存管理.xsl。当我打开里面的一个文档时,都可以从服务器获取最新的数据,当用户在excel中输入一条数据时,可以轻易的刷新回服务器。用SharePoint和Excel就可以这么做。当然我们还需要一些逻辑,这个可以借助Smart Doc,或者其它一些方式也可以。用户又回到了他以前的工作习惯(以前实际上就是一堆表格,只不过那是死的,现在是活的)。

    为什么我要这一堆文档作为系统呢?想想我们的基于windows mobile的智能手持设备/手机,上面都会有Office,你还需要对这些手持设备/手机进行特别的支持吗?另外你还需要部署系统吗?你只需要拷贝这些文件到某个系统就可以了。权限认证怎么办,和AD结合我想是最好的,当然自己做验证也是可以的,但是能用AD干吗用其它的呢?在部署的时候,不同的人只给他们不同的文件就可以了。可能仓库管理的人员就仅仅需要一个仓库管理.xsl就可以了。和他现在的excel表格一样,只不过现在的excel表格他填好了只能自己看,而且每天需要发邮件email给领导,现在则是填好了,直接就刷新回服务器了。

    说了这么多,不说了,明天培训完了再继续感发。

   

    欢迎访问海洋工作室(http://sps.oceanstudio.net)


   

   

posted on 2005-05-16 22:26 ocean 阅读(6570) 评论(54) 编辑 收藏

评论

#1楼  回复 引用 查看   

嗯,这技术很牛,用Office来做开发,从没想过,你有没有试过?
2005-05-16 23:15 | 常建昭      

#2楼  回复 引用   

我上面说过我们现在的系统就是用office作为输入界面的。
2005-05-16 23:18 | ocean[未注册用户]

#3楼  回复 引用 查看   

Office多少钱一个copy?fat client,是按client卖license,你们的项目全部用整版Office?! 开销真够吓人的了。
2005-05-16 23:45 | birdshome      

#4楼  回复 引用 查看   

我也担心这点阿。
2005-05-16 23:49 | neuhawk      

#5楼[楼主]  回复 引用 查看   

老大,有一点你别忘了,即使他不用我们的系统,他也要用office。也即如果用正版,这份钱他总要花。
国内用盗版的多,所以不用担心。国外都用正版,当时office占据这90%多的市场份额。所以也不用担心。
2005-05-16 23:50 | ocean      

#6楼  回复 引用   

我倒觉得这是一个不错的想法,至少是从客户方面来考虑问题的。 但是从技术实现的角度来讲就可能复杂。
最大一个问题可能是: 并发、一致性检验问题,即如何保证多个文档中的数据不冲突?
其次,我们是不是也需要在Office中作一些开发,以满足数据录入方便、显示规范的需要?如果需要做开发,那office的意义是不是仅仅局限在提供了一个数据交换平台?这一点,用XML完全可以实现。
暂时想到这么多,ocean 不妨仔细一点,谈谈具体思路
2005-05-17 00:58 | wljcan

#7楼  回复 引用 查看   

请问BI是什么的简称?
2005-05-17 08:03 | 天天      

#8楼  回复 引用   

Business Intelligence 商业智能
2005-05-17 08:13 | pantian

#9楼  回复 引用   

其实用OFFICE,再加上SharPoint,或是其它的,这种技术在国外是很流行的。
但在国内用的就不是很多了,我大概也只见过十家左右在用这种技术
2005-05-17 08:15 | pantian

#10楼  回复 引用 查看   

word,execl那么多功能国内人员还只是会用点简单的编辑操作,透视表对大部分人来说太复杂了,能做到更傻瓜么?
2005-05-17 08:31 | ttyp      

#11楼  回复 引用   

为什么WORD,EXCEL中国的软件企业作不出来,我感到有些关键技术被封所了吧,同是用C/C++,汇编呢,外国给我的开发工具可能不含这些开发这一功能(如透视表)关键技术吧??
2005-05-17 08:47 | zz

#12楼  回复 引用   

我觉得Office开始是很有前途的技术,Office可以做到很简单,
也可以应用到很复杂,特别是有SharePoint作服务,还可以用SmartDocument作开发,可以说是很多业务都可以实现!
只是国内关注的较少
2005-05-17 08:51 | 柚子Nan

#13楼  回复 引用   

"因为你需要在笔记本上装客户端,而我们的方案呢?不需要,因为你的笔记本上有word就可以了"
word在这里也可以叫做客户端了吧!
2005-05-17 09:05 | i.Posei

#14楼  回复 引用   

绝大部分人都之用到Word 10%的功能。有人根本不知道“行首缩进”是干什么用的,“居中”是干什用的,一律敲空格。样式下拉列表框就从没碰过,也根本不按标题1234组织文档。分节符,这么常用的东西就没人用,页眉里加个页码也不知道怎样加,就更别提让多个页的页眉不一样或者页码不连续。由于不使用文档组织结构,所以生成个目录就把自己累死了。简直就把Word当成电子纸来使用。
如此这样,离理想中的办公自动化还很遥远。
2005-05-17 09:06 | Ninputer[未注册用户]

#15楼  回复 引用 查看   

这种就是一种Smart Client的方式。
不过,我被领导问过一个问题,我们这样开发系统,用户看到都是Office,我们拿什么来卖钱呢。
唉,在中国做信息化是很痛苦的,中国轻视隐性的内涵(知识),而重视显性的外表(实体)。
所以,中国的客户觉得Sun,Ibm的硬件便宜,而MS的软件贵了。
2005-05-17 09:12 | redmoon      

#16楼  回复 引用   

>>>我被领导问过一个问题,我们这样开发系统,用户看到都是Office,我们拿什么来卖钱呢

实在!!

2005-05-17 09:20 | rui[未注册用户]

#17楼  回复 引用   

你了解不多,国内大大小小的BI ISV 挺多的。

简单讲,目前所谓的BI主要特性就是reporting,可以让业务用户很容易定制自己的report。后台采用molap,rolap还是简单的db,用户才不care呢。
2005-05-17 09:29 | montaque

#18楼  回复 引用   

可以用BI Portal做前端展现哦,呵呵,当然了,也需要sharepoint和office
2005-05-17 09:33 | waxdoll

#19楼  回复 引用 查看   

装配脑袋,标题只有1-3,没有4,其它我赞同;D
2005-05-17 11:27 | 奋斗中的灵感之源      

#20楼  回复 引用 查看   

从俺的开发经验看,单纯word的开发还是有很多不稳定因素啊,导致客户意见已经比较大。也请教过微软的技术支持了,很多问题很难解决。所以不过过分相信word。
我决定再也不搞word的二次开发了,太让人寒心了。
2005-05-17 12:48 | 小诈      

#21楼  回复 引用   

还有一个是office版本问题,你说只需要用户机器上有word和excel啥的就行。等你部署完了去看,我的天,别说office2000, xp有,不少人可能还在用office 97,你要是要人家升级到2003,先别说那些对电脑本来就不灵光的人认同不同意,那些跑office 97或2000得机器,能不能顺畅的跑2003还不一定。
2005-05-17 12:56 | birdshome

#22楼  回复 引用 查看   

微软的那个BI工具中有个叫Anlayer的是台湾公司的产品,感觉Tools一个,倒是很有前途,关键是微软要愿意给她这碗粥!
2005-05-17 13:16 | cloud      

#23楼  回复 引用   

我觉得楼主的想法太过天真
2005-05-17 13:55 | None

#24楼  回复 引用   

@奋斗中的灵感之源 : 标题只有1-3,没有4

看来你也不大会用……
2005-05-17 13:59 | Ninputer[未注册用户]

#25楼  回复 引用   

就东西新概念,这跟vba调用com还不是一个样,wps同样可以给你个接口让你实现,至于通讯方面开发商同样可以提供组件给你使用。至于智能文档,他能在非微软office的软件中使用吗?
2005-05-17 14:45 | Rover

#26楼  回复 引用 查看   

占个坑 等回复 呵呵。
2005-05-17 14:48 | QuitGame      

#27楼  回复 引用   

引用“当用户在excel中输入一条数据时,可以轻易的刷新回服务器”
bs系统中难道不能用脚本调用com组件访问数据库,现在是微软已经替你做好了,js+xmlhttp不是照样无刷新,说offfice是智能客户端,可IE就更是智能客户端了,http协议本事是断开连接的,我同样可以在IE中打开一个网页,使用脚本+com组件访问本地数据,需要更新时也调用com更新远程数据。如果这些负责通信的com都由微软实现了呢,那我们客户端只需要一个IE
2005-05-17 14:59 | Rover

#28楼  回复 引用   

哈哈,ocean,看来以后我们要多多沟通了,我们Team正在大力推Office SmartClient哦!

有时间写一些介绍你们的solution的文章吧。:)
2005-05-17 23:47 | kaneboy[未注册用户]

#29楼  回复 引用   

你那个东东能卖钱???
客户用5块钱一套的office,然后你那几个东东,他吃点亏,给你10块钱吧!

系统不稳定了,你说是微软的原因,客户一句“反正你搞定,我才不管什么微不微软呢!”

LZ看样子是个新入行的,要不就一直是靠关系在做单。
如果你的产品名声稍微大一点,呵呵,等着收微软的律师信吧!
2005-05-18 00:29 | hehe

#30楼  回复 引用   

大家不要小看OFFICE的前途。我非常同意斑竹的想法,而且我们公司现在所使用的项目管理软件也是完全基于OFFICE。除了WORD以外,OFFICE中最强大的可用于协作开发的就是OUTLOOK了,使用OUTLOOK你可以完全摆脱任何繁琐的项目软件,其实项目管理中最重要的功能OUTLOOK都可以做到,如果再和VS.NET结合起来,其功能会非常强大,大家可以看看VS.NET 2005中的TEAM FUNDATION SERVER功能,这里面微软已经在向这个方向前进了。应该说,基于OFFICE的管理软件才是这类软件的将来。

如果还不服,问自己一个问题,是愿意用一个OUTLOOK高定所有的项目管理工作,还是愿意使用其他的软件和OUTLOOK一起?如果你所有的用户需求都在EMAIL里,那不是会非常麻烦??

有兴趣的话,来看看我们的EXTREME EMAIL: http://www.ssw.com.au/ssw/eXtremeEmails/
2005-05-18 13:22 | Xu Lei[未注册用户]

#31楼  回复 引用   

越在Office市场做,越觉得Office市场有前途。
2005-05-18 14:07 | ocean[未注册用户]

#32楼  回复 引用   

As I know,
It seems office server is the next step of office 2006 is going to promoted. of course with the collboration of sps 2006.
2005-05-18 17:32 | gozh2002

#33楼  回复 引用   

another thing is project server 2003, seems not many people use it too much.
2005-05-18 17:32 | gozh2002

#34楼  回复 引用   

是啊,当我更进一步了解Outlook之后,我就觉得我们完全可以在office之上构建系统,这个工作,其实ms已经在做了,office给ms带来了巨大的利润,ms一定会想办法整合整个office系统的应用,sps已经在行动了。
2005-05-24 13:51 | kknd

#35楼  回复 引用   

支持楼主,我也觉得M$的平台整合优势很强,这一点在桌面领域无人能敌。win srv2003+exchange srv+sharepoint+wsus+office+……基本完全解决中小企业IT的全部需求了:协同办公、安全、知识管理……
2005-05-27 19:44 | 王恒玮[未注册用户]

#36楼  回复 引用 查看   

记得原来曾经看过这样的一句话
dos时代中windows是dos的一个组件
windows时代中office是windows的一个组件
那么是不是说明office就是下一代的操作系统那

这句话不赞同得人肯定很多
可是,如果单纯的 用成熟的office作为smart client
我感觉希望真的还是比较大的
关键是我们能不能在这个时候转过头脑来
2005-07-12 11:43 | 曼沙珠华      

#37楼  回复 引用   

数据的使用权限问题(菜单权限、动作的权限、数据的权限)。
数据的安全问题。
并发问题。

vba不是完全面向对象的

这些能处理好,office就可以了。
2005-08-25 14:36 | 888[未注册用户]

#38楼  回复 引用   

用office, 只不一定说是用microsoft office 软件, 意思是偏指用OWC多点.
用OWC作为OLAP呈现工具, 其他可以是Reporting Services, Ctrystal Reporting and so on
2005-09-01 09:26 | ben[未注册用户]

#39楼  回复 引用   

1 开发一个项目或是软件,客户要评比性价比。很多项目是可以用office做前台。不过每个企业都有自己的商业利益,MS,IBM,SUN,BEA....很多技术是为自己的商业利益服务。很多的新技术是陷阱。我在在上海工作有两年中,深有体会,国内的开发商只是他们前台的工人。

2 BI工具商很多,CONGNES,BRIO,ORACLE.....,中国还处在社会主义初级阶级,企业和客户包括个人都在做原始资金积累。客户内部的政治风险和个人发展风险让他们对这一类产品可以带来的好处感觉不可预知,对于BI的价格,太贵。使用者的水平(业务水平,对数据的理解水平)也限定了BI在国内的发限。


3 就国内现在的情史而言,一个好的与数据库交互的系统,主要还是数据库设计在业务扩展方面是否有业务先见性,和数据库设计的性能承压性。而非是用.NET或是J2EE。那怕你是用DB3,FoxBase,都可以,因为软件是工具,这一点是软件的最终归宿。

4 每种开发工具都有自己的长处和短处。Excel可以用于开发,也可用于BI,CrossTable也应该是一个企业里有一些人读得懂的内容。

5 是商业竞争把B/S推到了前台,B/S和C/S各有长处。当分析每一种技术的风险或是可用性时,只能是基于相同的标准或是具体的事件,二进制和十进制谁好?都好,都不好。1+1=2,1+1也认以=0,因为你可以为1+1=&%^$*^*&,因为如果你可以基于十进制为标准去推理任何事理,也可以基于二进制为标准去推理任何事理。是否用Excel做BI工具也是一样的情况。
2005-10-14 09:02 | Robin[未注册用户]

#40楼  回复 引用 查看   

很精辟,有见地。
2006-03-13 10:55 | anchky      

#41楼  回复 引用   

;度万亿分千月去;哦;微里万发挥可怜见器防护林哭看见连脚裤力气立刻前进立刻机器复活节康乐球法律艰苦去
2006-05-20 19:17 | 王八[未注册用户]

#42楼  回复 引用   

看法看法好看可以可以防空壕反抗眼
2006-05-20 19:18 | 王八[未注册用户]

#43楼  回复 引用   

我们产品 EXCEL服务器,轻松让业务人员定制MIS,可以打电话了解我们产品功能 82741965,
2006-06-08 17:43 | 智尊宝[未注册用户]

#44楼  回复 引用   

能挣钱的都是好东东。。。。

有没有VSTO或Office应用的开源系统?
各位推荐一下吧,感谢分享先!
2006-06-12 19:59 | dudu[未注册用户]

#45楼  回复 引用   

一切的美好源于趋势和坦然([url=http://www.boomsound.com.cn]wow gold[/url]),虽然岁月不会轮回,天真不再重现,一份真诚的([url=http://www.51paint.com.cn]wow gold[/url])祝福,会让你快乐每一天!
人世间有爱就有一切(<a href="http://www.boomsound.com.cn">wow gold</a>),把爱握在手中就握住了(<a href="http://www.51paint.com.cn">wow gold</a>)阳光灿烂的日子!

2006-10-20 22:22 | ZXCXZC[未注册用户]

#46楼  回复 引用   

Ocean, 你只谈到BI的部分概念——BI 除了OLAP外,主要的就是Mining,还有就是Forecast。Excel 可用做OLAP的显示,但做不Mining的。用 OWC 作一些显示还可以,完全用Excel的话,估计做一些协同办公的东西还OK。

2006-12-15 11:12 | 无锋[匿名][未注册用户]

#47楼  回复 引用 查看   

非常赞同这个观点!之前我们公司的质量报表就是一大堆是法国人设计的excel报表系统,简单实用!
2008-08-02 23:41 | Mingle      

#48楼  回复 引用 查看   

什麽亂七八糟的東西!還BI呢
2011-01-03 17:32 | kaka113      

#49楼  回复 引用 查看   

哈哈
2011-03-24 11:00 | BI      

#50楼  回复 引用 查看   

sed命令
无论命令是什么,sed并不与初始化文件打交道,它的操作仅仅是一个拷贝,然后所有的改动如果没有重定向到一个文件,将输出到屏幕

sed -n '2p' quote.txt 显示quote.txt文件中的第二行
sed -n '1,5p' quote.txt 显示quote.txt文件中的第二行
sed -n '/neave'p quote.txt 显示quote.txt文件中包含neave的行
sed -n '4,/The'p quote.txt 使用行号与模式混合使用的方式,即在第四行查询模式the
sed -n '1,$p' quote.txt 打印整个文件

要打印行号,使用等号,打印模式匹配的行号,使用格式/pattern/=
sed -e '/music/=' quote.txt 打印所有的行内容,并将匹配到的行号显示出来
sed -n '/music/=' quote.txt 只显示匹配的行号
sed -n -e '/music/p' -e '/music/=' quote.txt 将只显示匹配的行及对应的行号,
第一个命令打印模式匹配行,第二个使用=打印行号

sed '1,3d' quote.txt 删除1-3行之后显示出quote.txt内容
sed 's/night/NIGHT/' quote.txt 将quote.txt文件中的night替换为NIGHT
sed '1,2 w filedt' quote.txt 文件quote.txt输出到屏幕 1,2行输出到文件filedt
2011-03-24 11:01 | BI      

#51楼  回复 引用 查看   

sort
sort -cmu -o output_file [other options] +pos1 +pos2 input_files
-c 测试文件是否已经分类
-m 合并两个分类文件
-u 删除所有复制行
-o 存储sort结果的输出文件名
其它选项:
-b 使用域进行分类时,忽略第一个空格
-n 指定分类是域上的数字分类
-t 域分隔符;用非空格或tab键分割域
-r 对分类次序或比较求逆
+n n为域号 使用此域号开始分类
eg:
sort -c video.txt 判断文件是否已经分类
sort -t: video.txt 以:为分隔符 按照第一个域进行sort
sort -t: -r video.txt 逆向读取文件
sort -t: +1 video.txt 对第二个域进行排序 按字符排序
sort -t +2n video.txt 对第三个域进行排序 按数字排序
sort -u video.txt 去除重复行
sort -t: -k4 video.txt 按照第四个域进行排序
sort -t: -r -k4 -k1 video.txt 先按照第四域进行降序排列,再按照第一个域进行第一个域进行排序
sort -t: -r -k4 video.txt |head -l 排序后只显示第一行
sort -t: -r -k4 video.txt |tail -l 排序后只显示最后一行

sort -k4 qq.txt|tail -1 | awk '{print "worst :",$4}' 将最终结果通过通道用awl定制输出
2011-03-24 11:01 | BI      

#52楼  回复 引用 查看   

23.uniq
uniq -udcf input-file output-file
-u 只显示不重复行(不连续重复)
-d 只显示有重复数据行
-c 打印每一重复行出现的次数
-f n为数字,前n个域被忽略

24.join
25.cut
26.paste
27.split
28.tr
tr -[cds] string1 string2 <input-file
-c 用字符串1中的字符集的补集替换此字符集 要求字符集为ASCII
-d 删除 字符串1中所有的输入字符
-s 删除所有重复出现的字符 只保留一个
默认为string1替换为string2
tr -s "[a-z]"<cops.txt>results.txt 去重后保存
tr -s ["\n"] <cops.txt 删除空行
echo "May Day,May Day" | tr "[a-z]" "[A-Z]" 小写转化为大写
2011-03-24 11:02 | BI      

#53楼  回复 引用 查看   

@BI
20.awk命令
模式包括两个特殊的字段 BEGIN 设置计数和打印头 END用来在awk完成文本浏览 动作后打印输出文本总数和结尾状态标识
实际动作在{}内指定 动作大多数用来打印
awk -F: 'commands' input-file

awk '{print $0}' grade.txt | tee delete_me_and_die
awk 'BEGIN {print "Name belt\n-----------------------"}{print $1"\t"$4} END {"end of report"}' mywife.txt
规则:
确保整个awk命令用单引号括起来
确保命令内所有引号成对出现
确保用花括号括起动作语句,用圆括号括起条件语句
正则表达式用斜线括起来‘
为使域号匹配正则表达式,使用符号'~'后紧跟正则表达式,也可以用if语句 if后的条件要用()括起
awk '{if($4~/brown/) print $0}' grade.txt
awk '$0 ~ /brown/' grade.txt 这两个语句意思都是当第四个域含有brown时,打印它
awk '$3=="48" {print $0}' grade.txt 精确匹配
awk '$0 !~ /brown/' grade.txt 不包含
awk '$0~/(yellow|brown)/' grade.txt 包含yellow和brown的记录

&& AND 语句两边必须同时匹配为真
|| OR 语句两边同时或者其中一边匹配为真时
! 非 求逆

awk '{if ($1=="pbunny"&&$4=="yellow") print $0}' grade.txt
awk '{if ($4=="yellow"||$4~/brown/) print $0}' grade.txt

awk的内置变量
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览的文件记录数 小于等于NR
FS 设置输入域分隔符,等价于命令行-F选项
NF 浏览记录的域个数
NR 已读的记录数
OFS 输出域分隔符
RS 控制记录分割符

awk 'END {print NR}' grade.txt 输出文件的记录个数
awk '{print NF,NR,$0}END{print FILENAME}' grade.txt
NF的一个强大的功能是将变量$PWD的返回值传入awk并显示其目录
echo $PWD | awk -F/ '{print $NF}'

设置有意义的域变量名
awk '{name=$1;belts=$4;if(belts ~/yellow/)print name" is belt"belts}' grade.txt
2011-03-24 11:03 | BI      

#54楼  回复 引用 查看   

19.grep用法
grep的选项:
-c 只输出匹配行的计数
-i 不区分大小写(只适用于单字符)
-h 查询多文件时不显示文件名
-l 查询多文件时只输出包含匹配字符的文件名
-n 显示匹配行及行号
-s 不显示不存在的或无匹配文本的错误信息
-v 显示不包含匹配文本的所有行

grep "sort it" *.doc 在当前目录下所有.doc文件中查找字符串"sort"
grep -c "48" data.f 只输出data.f中含有48的行数
grep -n "48" data.f 显示所有满足匹配模式的所有行及行数
grep -v "48" data.f 显示不包含48的各行
grep "48\>" data.f 显示精确匹配48的各行
grep -i "sep" data.f 对大小写不敏感


grep '[Ss]ept' data.f |grep 483 从data.f中抽取sept不管s的大小写,并此行包含483

grep -E '219|216' data.f -E这一扩展允许使用扩展模式匹配 匹配219或216的文件

组合命令:
ls -l | grep '^d' 查询当前目录下的所有目录的列表
2011-03-24 11:03 | BI