`

awk合并两个文件的列

 
阅读更多

问题描述:两个文件a.dat, b.dat

 

a.dat

0    100

1    99

2    93

3    90

...

 

b.dat

0   0

1   3

2   0

3   2

....

 

如果两个文件中第一列的元素相同,则相对应行的第二列元素相加,即

0    100

1    102

2    93

3    92

...

 

awk 'FNR==NR{dx[$1]=$2; next}{print $1, dx[$1], $2, dx[$1]+$2}' a.dat b.dat > merge.dat

 说明

NR == FNR

 只有当处理第一个文件a.dat时,这个值才返回true,所以相应的处理是把第二列的数赋值给数组dx;如果判断值为False,即所处理的文件是b.dat,则输出第二个文件的第一列,第一个文件的相应的第二列,第二个文件的第二列和两个文件第二列的和。

 

(注:已知所处理的所有的文件都是等长度的)

分享到:
评论
1 楼 di1984HIT 2015-02-26  
不错。  

相关推荐

    awk处理两个文件的方法

    用awk处理两个文件的方法:特定域的合并、替换等

    AWK用法AWK用法AWK用法

    `&&`是逻辑“与”运算符,确保两个条件同时满足。 ### 更多高级用法 #### awk ‘{print NR, NF, $1, $NF}’ file 打印文件`file`中每一行的行号(`NR`)、字段数(`NF`)、第一列(`$1`)和最后一列(`$NF`)。这有助于...

    Linux awk将文件某列按照逗号分隔的例子

    通过这两个简单的例子,我们可以看到awk的强大之处在于它的灵活性和对文本处理的精确控制。在实际工作中,awk可以根据需要与其他命令(如`cut`、`sed`、`grep`等)结合使用,处理各种复杂的文本数据任务。同时,awk...

    Linux入门培训教程 linux awk 多文件操作2种实现方法.pdf

    1. **文件合并与排序**:首先使用`cat`命令将两个文件的内容合并成一个文件流,再通过`sort -n -k1`命令按第一列数值进行排序。 2. **使用awk处理合并后的数据**:利用awk的`next`语句来跳过某些行,从而达到合并...

    sed awk讲解资料全集

    在IT行业中,文本处理是日常工作中不可或缺的一部分,而sed和awk正是两个强大的命令行工具,它们在处理大量文本数据时显得尤为高效。本资料全集将深入讲解这两个工具的使用,帮助你掌握它们的精髓,让你能够自如地...

    awk-培训.docx

    - `/[0-9][0-9]+/`匹配两个或更多数字,`/[0-9][0-9]*/`匹配一个或更多数字。 - `OFS`是输出字段分隔符,默认为空格,可自定义。 - `ORS`是输出的记录分隔符,默认是换行符。 awk语句`awk '{code}1'`中的`1`是默认...

    shell两个文件去重的多种姿势

    大家都知道shell在文本处理上确有极大优势,比如多文本合并、去重等,但是最近遇到了一个难搞的问题,即两个大数据量文件去重。下面来看看详细的介绍吧。 要求  有txt文件A.txt和B.txt。 其中A为关键词和搜索量,以...

    sed和awk单行命令比较

    使用`awk`,可以简单地通过`printf`函数在打印每行后额外输出两个换行符。 ##### 2.2 删除空白行 **sed**: ``` sed '/^$/d;G' ``` 这里使用了两个命令:`/^$/d`用于删除空白行,而`G`命令则将当前行添加到模式空间...

    实战Shell脚本—sed,awk使用

    本文将深入探讨两个强大的文本处理工具——`sed`和`awk`,它们经常被用于Shell脚本中,以实现对文本文件的高效处理。`sed`(流编辑器)和`awk`(一种编程语言)都是数据分析和文本转换的强大工具,尤其在处理日志...

    awk用法小结

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

    Linux主要shell命令、sed、awk使用详解

    通过本文的学习,我们了解了Linux Shell的基本概念以及常用命令的使用方法,同时也掌握了sed和awk这两个强大工具的基本操作技巧。这些命令对于日常的系统管理和数据处理非常有用。掌握它们能够极大地提高工作效率,...

    awk数组实战

    - 表格处理:通过数组解析CSV文件,实现列的筛选、合并或转换。 - 日志分析:在日志文件中,数组可以帮助定位特定IP地址或错误代码的频繁出现。 总之,`awk`的数组功能强大且灵活,对于处理和分析大量文本数据...

    unix命令集(中文版和英文版两个文件)pdf

    本资源包含两个PDF文件,分别是"unix命令参考.pdf"和"linuxrefcard.pdf",分别提供了中文和英文版的Unix命令集,帮助用户快速理解和记忆这些基础且实用的命令。 1. **文件管理**: - `ls`:列出目录内容。 - `cd`...

    awk&sed; PDF文档学习资料

    根据提供的文件信息,本文将重点围绕“awk & sed”这一主题进行深入探讨,并结合Linux环境下的实际应用案例,为读者提供全面的知识点讲解。 ### 一、awk与sed概述 #### awk简介 awk是一种用于文本处理及报表生成的...

    shell中常见命令与awk,sed的等价命令

    shell提供了丰富的命令来实现各种功能,而`awk`和`sede`则是其中两个非常强大的文本处理工具。本文将详细介绍一系列常用的shell命令及其在`awk`和`sed`中的等价实现方法。 #### 二、等价命令详解 ##### 1. `cat` *...

    Sed 和 awk 基本操作 linux操作系统爱好者学习

    - 解释:如果当前行匹配到“regex”,则在输出该行后打印两个换行符。 - **匹配前后各一行:** `awk '{if(/regex/)printf("\n%s\n\n",$0);else print $0}'` - 解释:结合上述两种方法,在匹配行前后都添加换行符...

    Python实现像awk一样分割字符串

    在上面的示例中,awk 将 `demo.txt` 文件中的 "hello world" 作为一个由单个空格分隔的两个字段打印出来。 在 Python 中,如果我们直接使用 `split()` 方法,结果可能会有所不同: ```python msg = 'hello world' ...

Global site tag (gtag.js) - Google Analytics