分类 "linux" 的存档.

awk 实例之二维数组

由于 AWK 不支持二维数组,有时候使用起来还真不是那么得心应手。

这不,本次应用又遇到了难题,要是按照PHP的想法,仍然是用二维数组搞定,两层foreach一循环啥都完事了。可是不行啊,一个文件几十万行,用PHP去分析那不死的要多惨有多惨?

先来看一下日志结构,和原来一样,每行一条记录,用{SPR}分隔字段,第二个字段为游戏名,第四个字段为用户ID,现在要统计每个游戏的用户ID,且要消重,于是,困难来了。
阅读更多…

字体文件也属于二进制文件

之前只知道图片属于二进制文件,别的就都不敢确定了。

今天做了一个验证码,需要上传一个字体文件。因为上线是用的打patch方式,所以有些犹豫这个字体文件到底是否属于二进制文件呢?

百思不得其解,咋确认呢?
阅读更多…

linux 使用join命令时切勿对文件进行数值排序

之前我介绍过linux 的join命令和sort命令。有一点没有说明的是,使用join的时候是要对两个比较的文件先排序的。

但是这个排序是要小心进行的,一般使用sort不附加任何参数即可以,因为join实际上是按字符串对两个文件进行“撞”的。所以千万不要使用例如 -n -g这类参数对文件进行排序。
阅读更多…

linux sort 的选项(参数)与用法举例

最近一直在间隙性的做着一些统计的工作,所以接触了许多实际工作中用到的一些命令,而这些命令又无一不是有着丰富的参数,这大概是linux系统特有的吧。不了解这些参数就不能好好的工作,当然也就会让你陷入被动。今天就来为大家介绍一个在linux下非常有用的命令:sort。

因为公司用的机器是freeBSD,所以指定的sort的选项和用法可能和标准linux的不太一致。不过大抵是相同的。

本文分成三个部分,分别为大家介绍sort的作用、sort的选项(参数)及其含义、以及一些简单的示例。
阅读更多…

linux wc 命令简介

呃,此wc命令不是让大家没有食欲的地方。而是linux下一个简单的小命令。

NAME
wc — word, line, character, and byte count

SYNOPSIS
wc [-clmw] [file ...]

阅读更多…

linux join命令简介

继续上周的任务,抽空搞了会儿统计,再不搞头就要怒了。说实话,对这些东西我一向是比较懒的,而且比较怕。 自己不熟的东西总是不肯下手,能拖就拖,这毛病也实在不像话。等拖的不能再拖了,该问人问人,该求爷爷求爷爷,反正基本上在最后时间的尾巴上把东西搞出来,然后仰天长叹,不过而而。

今天主要要用Linux的join命令,join是什么?连接嘛。

功能说明:将两个文件中,指定栏位内容相同的行连接起来。
语  法:join [-i][-a<1或2>][-e< 字符串>][-o< 格式>][-t< 字符>][-v<1或2>][-1< 栏位>][-2< 栏位>][--help][--version][文件1][文件2]
补充说明:找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。

阅读更多…

awk取数组元素的个数

昨天写的是按照其中的一列消重来取另一列的count,可是却没有交待如何取数组元素的个数,刚才简单写了一个小程序,验证通过。

一会儿就要写更麻烦的东西了,烦啊。PHP操作文件,咋就这么郁闷呢。(弱弱的抱怨一下)
阅读更多…

awk 按其中一列消重,取另一列的count

可能方法笨了点,不过想了半天才想出来,这玩意刚接触写的还真是慢啊。

今天要做的东西是取一列的值,并且按数据表的另一列进行消重,这可太要命了。二维数组这玩意在awk和没有一样,无奈啊。不过好在功夫不负苦心人,好歹咱是弄出来了,虽然代码并不优雅,不过总算是解决了问题。
阅读更多…

awk 最大值,最小值 字符串转数字

马上就要用awk来分析一些日志,所以今天继续恶补。书上的例子看了就懂,有些飘飘然。然而真正动手却发现不是那么回事。看来好记性不如烂笔头,有些东西记下来比较好。

举个最简单的例子吧,用awk求一列的最大值和最小值。按照书中的要求来写出内容。其中最让人恶心的大概就是这个字符串转数字了。
阅读更多…

linux egrep新添的正则表达式元字符

egrep 是 grep的扩展,使用 egrep的主要好处是其在 grep提供的正则表达式元字符集的基础上增加了更多的元字符。不过,egrep 不支持 grep 的\(\)标记匹配字符和\{\}重复的功能。

阅读更多…