资讯专栏INFORMATION COLUMN

awk将两个文件逐行连接

diabloneo / 3194人阅读

摘要:将两个文档逐行连接,比如文件内容是文件内容是结果是代码为说实话,这行代码相当难以理解。比如上面代码的结果是间隔为两个空格还有一种方法但这种写法没有第一种好,第一种写法可以保证文件的第一列顺序与不同时仍然可以实现拼接。

将两个文档逐行连接,比如:
a文件内容是
a 1
b 2
c 3

b文件内容是
a 5
b 6

结果是
a 1 5
b 2 6
c 3

awk代码为:

awk "{a[$1]=a[$1]" "$2}END{for (j in a) print j""a[j]}" a b

说实话,这行代码相当难以理解。看完了awk的语法,也没有发现类似的用法。使用谷歌找到了一个解释。

  

{ a[$1]=a[$1]" " $2; next } means append the value of field two ($2) to an array (a) indexed by the value of field one ($1)

意思是a数组以$1为key,a[$1]的初值是空字符串,将同一个key对应的" "$2不断追加到a[$1]中。
比如:

awk "{a[$1]=a[$1]"  "$2}END{for (j in a) print a[j]}" a b

上面代码的结果是(间隔为两个空格):

  1  5
  2  6
  3

还有一种方法

shellpaste -d" " a b | awk "{print $1, $2, $4}"

但这种写法没有第一种好,第一种写法可以保证b文件的第一列顺序与a不同时仍然可以实现拼接。比如,当b文件内容下面这种时,结果是一样的
b 6
a 5

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/9061.html

相关文章

  • awk两个文件逐行连接

    摘要:将两个文档逐行连接,比如文件内容是文件内容是结果是代码为说实话,这行代码相当难以理解。比如上面代码的结果是间隔为两个空格还有一种方法但这种写法没有第一种好,第一种写法可以保证文件的第一列顺序与不同时仍然可以实现拼接。 将两个文档逐行连接,比如: a文件内容是 a 1 b 2 c 3 b文件内容是 a 5 b 6 结果是 a 1 5 b 2 6 c 3 awk代码为: awk {...

    Raaabbit 评论0 收藏0
  • SegmentFault 技术周刊 Vol.19 - Linux 文本处理三利器

    摘要:所以,本期周刊将介绍命令行世界中最常用的文本处理命令三巨头,让它们带你初步领略命令行的强大。简单的,可以直接理解为是一个数据处理工具,倾向于将一行文本分成数个字段来处理,适合小型数据的处理。 showImg(https://sfault-image.b0.upaiyun.com/226/799/2267992322-586b7c52ed9fc); 之前看过一篇文章《当我们 chmod ...

    hightopo 评论0 收藏0
  • 三剑客之AWK

    摘要:使用中,需要处理的文件,逐行使用分隔符分割成若干个字段,称之为域,分隔符默认是空格,可使用选项来指定分隔符脚本模式将所需执行的命令插入脚本文件,然后在首行设置命令解释器为通过键入脚本名的方式调用。 博文参考 http://www.178linux.com/6553 http://baike.baidu.com/link?url=Y4lo-kWxygpw7NLaKTSehvpkAM7og...

    csRyan 评论0 收藏0
  • 三剑客之AWK

    摘要:使用中,需要处理的文件,逐行使用分隔符分割成若干个字段,称之为域,分隔符默认是空格,可使用选项来指定分隔符脚本模式将所需执行的命令插入脚本文件,然后在首行设置命令解释器为通过键入脚本名的方式调用。 博文参考 http://www.178linux.com/6553 http://baike.baidu.com/link?url=Y4lo-kWxygpw7NLaKTSehvpkAM7og...

    appetizerio 评论0 收藏0
  • AWK 从不会到入门 Skr Skr

    摘要:含义,是由这两个人共同发明的。里定义了分隔符,这和之前的里的选项是完全等价的效果。在里,就是行,因此表示。改变了的行为,从开始到结束只执行了一次。 awk 含义: Aho, Weinberger & Kernighan interpreted language,是由这两个人共同发明的。 这不是一个工具,「这是一个伟大、有着奇怪的名字的语言」。 发音:awk [ɔk] 基本用法 awk ...

    idealcn 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<