`
不爱不见
  • 浏览: 283842 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

awk对文件按照列进行合并

阅读更多
   首先解释一下awk合并文件用到的变量,NR表示读到的文件行数,会对所有文件进行累加,FNR表示读到的当前文件行数,每次读完一个文件后就会从1重新开始。

文件1.request.txt(空格分隔,一共3列)
/game/bag/batchSell 98.5775 842
/game/bag/gainVipDailyGift 24.0069 785
/game/bag/open 9.54098 16
/game/bag/refresh 76.3525 820
/game/bag/useItem 67.3278 798
/game/banquet/newBanquet 91.8188 985[color=red][/color]
/game/battle/autoCheckPoint 111.041 4419
/game/battle/cancelOffLine 154.037 2120
/game/battle/checkpoint 267.485 8589
/game/battle/detect 343.987 844
/game/battle/offLineAuto 6.31881 49
/game/battle/speedUp 71.5616 2566
/game/beauty/addToGeneral 277.299 1068

文件2.requestShort.txt(空格分隔,一共2列)
/game/bag/batchSell 12
/game/bag/gainVipDailyGift 6
/game/bag/open 6
/game/bag/refresh 0
/game/bag/useItem 6
/game/banquet/newBanquet 20
/game/battle/autoCheckPoint 0
/game/battle/cancelOffLine 6
/game/battle/checkpoint 11
/game/battle/detect 2
/game/battle/offLineAuto 0
/game/battle/speedUp 0
/game/beauty/addToGeneral 7

要求:按照第一列进行合并,合并的命令如下:
awk 'NR==FNR{a[$1]=$2}NR>FNR&&a[b=$1]{print $0, a[b]}' request.log requestShort.log >result.txt

合并后的结果:
/game/bag/batchSell 98.5775 842 12
/game/bag/gainVipDailyGift 24.0069 785 6
/game/bag/open 9.54098 16 6
/game/bag/useItem 67.3278 798 6
/game/banquet/newBanquet 91.8188 985 20
/game/battle/cancelOffLine 154.037 2120 6
/game/battle/checkpoint 267.485 8589 11
/game/battle/detect 343.987 844 2
/game/beauty/addToGeneral 277.299 1068 7
分享到:
评论

相关推荐

    linuxawk将多个文件结果列合并到一个文件整理.pdf

    使用 awk 将多个文件结果列合并到一个文件 在 Linux 环境下,使用 awk 工具可以将多个文件的结果列合并到一个文件中。这篇文章将介绍如何使用 awk 实现该功能,并提供了一个示例 awk 脚本来合并多个文件的结果列。 ...

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

    在本例中,我们将探讨如何使用awk将文件中的某列数据按逗号进行分隔,这对于处理数据列表或者在SQL查询中构建IN语句非常有用。 首先,让我们考虑一个场景:你需要从数据库中查询特定用户购买的商品ID(product_id)...

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

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

    AWK用法AWK用法AWK用法

    对于包含`101`的行,打印第一列和第二列合并后的结果。此例展示如何连接字段。 #### df | awk ‘$4 > 1000000’ 从`df`命令的输出中筛选出第四列大于`1000000`的行。这里结合了管道操作来处理命令的输出。 #### ...

    unix之AWK使用小解

    previous = $1} {print substr($0, index($0, " ") + 1) > $1}' file`:对文件中的每一行进行处理,如果当前行的第一列与前一行不同,则关闭前一行的相关处理,并更新当前行的处理逻辑。 通过以上示例可以看出,...

    sed awk讲解资料全集

    5. **文件操作**:如何用sed和awk读写文件,以及进行文件比较和合并。 6. **实战案例**:通过实际问题的解决过程,学习如何应用sed和awk处理日志分析、数据过滤、报告生成等任务。 此外,资料中可能还会涵盖高级...

    Shell、awk、sed面试题汇总(无答案).doc

    8. 数据排序:可以使用 awk 命令来对数据进行排序,例如按照第二列排序。 sed 9. 行号打印:可以使用 sed 命令来打印文件的行号,例如 `sed '=' file`。 10. 空行打印:可以使用 sed 命令来打印文件的空行,例如 `...

    awk命令简介

    - `awk '{print FILENAME, $0}' file1 file2 file3 > fileall`: 将多个文件的内容合并到一个文件`fileall`中,并在每一行前面加上文件名。 #### 十二、其他功能 - `awk '$1 != previous {close(previous); previous...

    linu awk命令详解_linuawk命令详解_

    - 使用awk进行文件合并、数据过滤、报表生成等复杂任务。 - 与其他命令管道结合使用,如`grep`、`sort`,实现更强大的文本处理能力。 通过熟练掌握awk命令,Linux用户能够高效地处理日志文件、进行数据分析,甚至...

    awk用法小结

    print $7}' file`:对每一行的第七列进行模3运算,并打印结果。 11. **复杂计算与格式化输出**: - `awk '/tom/ {wage = $2 + $3; printf wage}' file`:如果行中包含“tom”,则将第二列和第三列相加的结果存储...

    实战Shell脚本—sed,awk使用

    4. **列操作**:`awk`能够轻松处理CSV或其他结构化的数据文件,按列进行操作。 5. **计算和统计**:利用内置的数学函数,可以对数据进行简单的计算或统计。 6. **文件合并与分割**:结合其他Shell命令,可以实现文件...

    获取码流每帧大小 idx.awk

    通过运行`./idx.awk aa.csv > aa.idx`,我们可以使用名为"idx.awk"的awk脚本来处理这个CSV文件,并将其转换成另一种格式,生成的"aa.idx"文件可能是为了便于特定的码流分析工具读取或进一步处理。 awk是一种强大的...

    awk数组实战

    默认情况下,`awk`会按照内部排序的键进行遍历,但这种排序通常不可预测。如果你需要特定顺序,可以使用`for`循环和`NF`变量。 ```awk for (i in array) { print i, array[i] } ``` 3. **数组操作** - `...

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

    - **示例**: `awk -F',' '{print $1}' input.csv` - 以逗号作为分隔符,打印 `input.csv` 文件的第一列。 3. **条件筛选**: 使用条件表达式筛选行。 - **示例**: `awk '$1 == "apple" {print $2}' input.txt` - ...

    linxu命令大全 Linux命令非常丰富,下面列出了一些常用的Linux命令,并按照功能进行了分类

    1. **ls**:列出指定目录中的文件和子目录列表,默认为当前目录。 - 示例:`ls -l` 显示详细信息。 2. **cd**:改变当前工作目录到指定路径。 - 示例:`cd /usr/local` 进入 `/usr/local` 目录。 3. **pwd**:...

    Linux 入门时必学60文件处理个命令

    1. **ls**:列出目录内容,常用于查看当前目录下的文件和子目录。 2. **cd**:改变工作目录,帮助你在文件系统中导航。 3. **pwd**:显示当前工作目录,确认你的当前位置。 4. **mkdir**:创建新目录,用于组织文件...

    sed 使用手册linux unix 下常用的文本处理工具。用来处理格式化文本

    对文件`file`中第七列进行模3运算,并打印结果。 - **字符串拼接** ``` awk '/tom/ {wage = $2 + $3; printf "%s\n", wage} file' ``` 如果文件`file`中的行包含“tom”,则将第二列和第三列相加,并打印结果...

    UNIX课件七高级文件处理共45页.pdf.zip

    11. **awk和sed**:这两个强大的文本处理工具可以进行数据提取、转换和过滤,对大型日志文件尤其有用。 以上内容构成了UNIX高级文件处理的核心,通过学习这些知识,用户将能够更高效地管理和操作UNIX系统中的文件,...

    Linux相关命令详解

    这个资源摘要信息详细介绍了 Linux 相关命令的语法规则、常用选项和示例应用,涵盖了文本处理、数据分析、搜索和打印、排序、去除重复、截取特定列、合并文件、分割文件和比较文件差异等多个方面。

Global site tag (gtag.js) - Google Analytics