美文网首页
使用awk将文件中的某列替换为另一文件中的某列

使用awk将文件中的某列替换为另一文件中的某列

作者: 屠夫_bc13 | 来源:发表于2018-09-17 19:57 被阅读0次

两个文件,如何将f1中第2列替换为f2中第3列

f1:
111 aaa 444
222 bbb 555
333 ccc 666

f2:
111 333 000 444
222 444 111 555
333 555 555 666

awk代码实现如下

awk 'FNR==NR{a[NR]=$3;next}{$2=a[FNR]}1' f2 f1

上述代码的说明:

FNR == NR允许您一次处理一个完整的文件.在这种情况下,它是文件f2. NR和FNR都包含行号,差异是当读取新文件时,FNR重置为1,而NR继续递增.
当我们使用f2文件时,我们正在创建一个名为使用行号(NR)作为键和第三列(3)作为值的数组. next允许我们跳过动作块的其余部分. 一旦f2文件结束,我们就开始处理f1文件了. NR == FNR条件不会变为假,因为FNR将从1递增而NR不会.因此,只有第二个动作块{2 = a [FNR]}将被处理.
此块的作用是通过查找行号将第二列值重新分配给数组值.
最后> 1打印线.它返回true,在awk中,true语句导致行的打印.
f2 f1是定义的文件的顺序.由于我们想要从文件f2创建一个数组,我们先把它放在第一位.

转自:https://codeday.me/bug/20180823/227497.html

相关文章

  • 使用awk将文件中的某列替换为另一文件中的某列

    两个文件,如何将f1中第2列替换为f2中第3列 awk代码实现如下 上述代码的说明: FNR == NR允许您一次...

  • awk常用基础命令(ing)

    Awk 1. 打印文件的某列: awk '{print $2}' handdata注:handdata为文件名,...

  • VBA相关

    判断某文件夹是否存在某文件 设置图形跟随单元格移动 印刷范围的获取与设置 列号转换为列名 列名转换为列号

  • shell文件处理常用指令

    对文件内容进行全局替换 对调文件中的某两列数据 将多行文件转换为一行 删除符合条件的行 输出指定行 合并两个文件内...

  • Linux:用awk命令获取某行,某列

    1、打印文件的第一列 : awk '{print $1}' filename 2、打印文件的前两列 : awk '...

  • day20

    三剑客—awk NR 根据行查找文件内容 查找第二行内容 查找2行中前2列 $ 列根据列查找文件内容 查找文件中1...

  • EXCEL操作公式

    EXCEL中怎么查找某列数据在另一列对应的内容 对比两列不同

  • [awk] 使用awk中的hash 统计(python dict

    使用awk 简单统计 文件第二列中字符串出现的次数 for a in dict 循环 用法很像是python 的...

  • 各种常用的处理命令

    提取染色体片段 提取文件中的某几列 根据位置提取vcf文件对应位点的信息 提取某一列数值满足条件的列 提取某些样本...

  • Shell中使用awk按列求和

    参考:Shell中如何按列求和? 使用awk按列求和

网友评论

      本文标题:使用awk将文件中的某列替换为另一文件中的某列

      本文链接:https://www.haomeiwen.com/subject/zhrdnftx.html