|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!假如你有一个4.2GB的CSV文件,内里有凌驾1200万笔记录,每笔记录都有50列。如今你要做的是把个中某一列的值全加起来。你怎样办?
这是我比来看到的一篇文章的开首部分。文章先容的是怎样利用unix下令来剖析大致积文件的文章。像我如许一个基础上都在Windows平台上开辟的步伐员,对他提出的如许一个成绩,起首呈现在头脑里的就是内存溢出、CPU到达100%、跑一个早晨。而关于一个Linux/unix妙手来讲,这真是小菜一碟,正如文章中先容的***,一行下令就完成了这个义务。
(假定文件名叫做data.csv,行数据用竖线支解,我们必要总计个中的第四列。)
catdata.csv|awk-F“|”‘{sum+=$4}END{printf“%.2f
”,sum}’
简便洁净,并且内里的{sum+=$4}很有闭包的滋味。让我对Linux的憧憬又加深了一层。
我写这篇博客的目标并非抒发对Linux的情感的,而是重点讲一下产生在这篇文章批评里的事变。这篇文章吸引了很多Linux喜好者的批评,并且都是Liunx妙手,仅仅是第一条批评,看了后就让我惊奇的合不上嘴。
这位叫做CaliforniaLotto的网名的批评是:
假如你以为本人是一个Linux下令行妙手,那祝贺你博得明天的“最没用的Cat用法”年夜奖。你应当如许写这个下令:- awk-F"|"{sum+=$4}END{printf"%.2f
- ",sum}<data.csv
复制代码 切实其实,cat在这里仿佛是没需要的。我起首是信服,可以后即刻感到这团体可真厌恶,矫饰。固然我不喜好他忽视作者写这片好博文的辛劳,但作为门外汉,他和作者一样都是我高不成及的。
但是当我读第二条批评时,事变呈现了戏剧性的变更,这第二条批评分明是真对第一条批评的:
假如你以为本人是一个Linux下令行妙手,那祝贺你博得明天的“最没用的重定向用法”奖。你应当如许写这个下令:- awk-F"|"{sum+=$4}END{printf"%.2f
- ",sum}data.csv
复制代码 正所谓强中自有强中手,一山更比一山高。我俄然意想到,实在没需要在这里比谁比谁更强,在这个众多的互联网里,永久城市有比你在某***更出众的人。这里主要的是切磋和介入。经由过程这类切磋,不但丰厚了你我的常识,并且对成绩的办理计划有了更丰厚的熟悉。正像接上去的批评里持续指出,下令行这的重定向符放在甚么中央都能够,写成如许也是好用的:
<data.csvawk-F“|”‘{sum+=$4}END{printf“%.2f
”,sum}’
奇妙吧!而接上去持续有人指出,作者在实行时写成如许:
head-1data.psv|awk-F’|’‘{printNF}’
实行乐成后间接把head改成cat是水到渠成的事。
不论如何,这是一篇好文章,这些人都是妙手,都是我的先生,不但教我编程常识,更教我怎样做人。
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们! |
|