标题: gawk如何将两个文件中的内容打印出来 [打印本页]
作者: shootman2 时间: 2018-8-18 22:45 标题: gawk如何将两个文件中的内容打印出来
由于工作需要,需将要两个文本中的两列的数据打印在一行上显示出来,该如何实现呢?
文件1内容:
aaa|111|123
bbb|222|123
ccc|333|123
文件2的内容
hhh|111|123
iii|222|123
jjj|333|123
通过gawk实现这样的输出
aaa|hhh
bbb|iii
ccc|jjj
作者: hlzj88 时间: 2018-8-19 00:36
导入到excel,删除不要的即可
作者: Batcher 时间: 2018-8-19 20:59
- gawk -F "|" "NR==FNR{a[FNR]=$1}NR>FNR{print a[FNR]\""|\""$1}" 1.txt 2.txt > 3.txt
复制代码
作者: shootman2 时间: 2018-8-19 22:02
本帖最后由 shootman2 于 2018-8-19 22:03 编辑
回复 3# Batcher
Batcher大神!请收下我的膝盖。。。
昨晚通宵搞到4点,仍然没有解决问题!!!您这一指点一下就解决问题了。。。
作者: shootman2 时间: 2018-8-19 22:09
回复 3# Batcher
我理解了一下,这代码的原理是,在处理第一个文件的时候,先将$1字段的数据写入到一个数组中,然后在处理第二个文件时,
将数组和第二个文件的$1一并打印。
是这个思路呗?那我想问下,如果是有三个文件,要实现一楼的需求,该怎么实现呢?貌似好像没有另外一个FNR来标示正在处理第三个文件啊!
作者: cfwyy77_bat 时间: 2018-8-20 08:40
回复 5# shootman2
办法肯定不只一种,awk 有个内建变量 FILENAME 了解一下?
作者: Batcher 时间: 2018-8-20 09:11
回复 5# shootman2 - gawk "ARGIND==1{...}ARGIND==2{...}ARGIND==3{...}" 1.txt 2.txt 3.txt
复制代码
作者: shootman2 时间: 2018-8-20 11:19
回复 7# Batcher
已经按照大神您的指点完成了工作任务,再次感谢!!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |