`

awk 文件按行累加

 
阅读更多

问题描述:一个描述频率分布的文件,第一列是数据(数值),第二列是相应数据出现的频率。要求逐行累加,得到累积分布。文件大于10万行。

 

awk 'BEGIN{x=0} {x=x+$2; a[$1]=x} END{for (i in a) print i,"\t",a[i]}'  input.dat > output.dat

 

这个方法出来之后第一列基本的排序是乱的,然后需要在排序:

sort -n -k1 output.dat > sortedOutput.dat

 选项n表示按数值排序, k1表示按第一列排序。

 

不知道有什么聪明的办法可以直接在awk里输出排序好的……

分享到:
评论
1 楼 di1984HIT 2015-02-26  
awk 'BEGIN{x=0} {a[$1]=a[$1] + $2} END{for (i in a) print i,"\t",a[i]}'  input.dat > output.dat

相关推荐

    unix shell awk 修改ini文件的脚本

    - 使用`awk`读取.ini文件的每一行,并根据行的内容进行不同的处理。 - 当遇到新的section时,会检查该section是否为目标section。如果是,则设置标志位`blnFS`为1。 - 对于每个键值对,会检查当前section是否为...

    AWK用法AWK用法AWK用法

    根据提供的文件标题、描述、标签以及部分内容,我们可以深入探讨AWK这一强大的文本处理工具的用法及特性。AWK是一种编程语言,专为文本处理设计,尤其适合在Linux或Unix环境中进行数据处理与分析。 ### AWK命令示例...

    awk 工具用法说明

    - `awk '$2>5&&$2显示文件`file`中第二列值大于`5`且小于等于`15`的所有行。 3. **记录信息输出** - `awk '{print NR, NF, $1, $NF}' file`: 显示文件`file`的每行的行号、字段数量及第一和最后一个字段。 4. **...

    unix之AWK使用小解

    - `awk '{print FILENAME, $0}' file1 file2 file3 > fileall`:将多个文件的内容合并到一个文件中,并在每行前面添加原文件名。 **15. 记录处理** - `awk '$1 != previous {close(previous); previous = $1} {...

    awk命令简介

    - `awk '/101/,/105/' file`: 显示文件中从包含“101”的行到包含“105”的行之间的所有行。 - `awk '$1==5' file`: 显示第一列值为5的所有行。 - `awk '$1=="CT"' file`: 显示第一列值为"CT"的所有行。 - `awk '$1*...

    avg_throughput.rar_awk_awk file_awk file for ns2 _ns2_awk_trace

    下面将详细讨论AWK语言、AWK文件在NS2中的应用以及如何通过它们来追踪网络性能。 首先,AWK是一种强大的文本分析工具,最初由贝尔实验室的三位开发者Aho、Weinberger和Kernighan(因此得名AWK)设计。它能够处理...

    NS2下无线网络的各种参数统计的AWK脚本

    这些文件通常包含大量行,每行代表一个事件,格式为`nodeid event_type time parameter_value`。 3. **awk脚本的作用**: awk脚本是用于处理文本文件的强大工具,尤其适合分析和提取结构化的数据。在本场景中,awk...

    awk_linux_bash_awk_

    它的工作原理是在文件或标准输入中逐行扫描,根据用户定义的模式和动作对每一行进行处理。基本语法结构如下: ```awk awk '模式 {动作}' ``` 模式可以是正则表达式,用于匹配行。动作则是一系列要执行的命令,如打印...

    awk用法小结

    - `awk '{print FILENAME, $0}' file1 file2 file3 > fileall`:将多个文件(`file1`、`file2`、`file3`)的内容合并到一个文件(`fileall`)中,并在每一行前面加上文件名。 15. **文件处理与条件分支**: - `...

    Awk 个人笔记.docx

    在例子中,`ls -l`列出文件信息,然后通过`awk`提取第九列(文件大小)和第五列(权限),累加第五列的数值,并在末尾输出总计。 13. **字符串函数**: - **替换**:`sub()`和`gsub()`函数用于替换字符串中的子串...

    AWK命令集解释与应用

    此命令首先使用`ls -l`列出目录下的文件及其大小,然后使用AWK过滤出非目录文件(即文件),并将这些文件的大小累加起来。 #### 六、结论 通过对AWK命令的全面介绍与实际案例的应用,我们可以看到AWK不仅是一个...

    linux下的awk编程

    `awk`是一种强大的文本处理工具,它在Linux环境下被广泛用于数据操作任务,例如格式化数据、验证数据有效性、查找具有特定属性的项、累加数字以及打印报告等。由于这些任务经常出现,并且通常涉及简单的机械式数据...

    Linux 中awk 提取包含某个关键字的段落

    例如,如果你想在打印段落的同时,还统计每个关键字出现的次数,可以使用内置的`NR`(行号)和`FNR`(当前文件的行号)变量,以及累加器变量: ```bash awk '/关键字/ {count[$0]++} END {for (i in count) print i...

    yinyuemi--awk初学之常见问题1

    - FNR(File Number Record)也是awk内置变量,但它是针对当前文件的行数,从1开始累加,每处理完一个文件,FNR会重置为1。只有当处理多个输入文件时,NR和FNR的值才会不同。 举例来说,如果有两个文件file1和file2...

    awk_手册【中文】.pdf

    **AWK**是一种用于文本处理的强大脚本语言,特别适用于数据行(Record)和字段(Field)形式的数据处理。它采用解释执行的方式,无需编译即可运行,极大地提高了编程效率。 ##### 1. **AWK适用问题** - **数据过滤...

    linux处理10万个二进制文件

    `awk`是一个强大的文本分析工具,它能够处理一行一行的数据,按照指定的模式进行匹配和操作。在这个场景中,我们可以使用`awk`读取二进制文件的前320个字节,并对它们进行求和操作。然而,需要注意的是,`awk`默认是...

    linux awk时间计算脚本及awk命令详解

    - 每个输入行中的第三个字段($3)表示秒数,累加到`total_seconds`中。 - 当`total_seconds`达到或超过60时,减去60并将分钟字段($2)加1。 - 同理,当`total_minutes`达到或超过60时,减去60并将小时字段($1)加1。 ...

    AWK 是一种强大的文本处理工具,可以用于对结构化文本数据进行分析、提取和转换

    该命令将筛选出`input.txt`文件中包含关键字“keyword”的所有行,并将其打印出来。这里的`/keyword/`即为模式匹配的关键词。 ##### 按列处理数据 ```bash awk '{print $2}' input.txt ``` 这条命令将打印出`...

Global site tag (gtag.js) - Google Analytics