找到PATTERN时合并两个文本文件的行 [英] Merge lines of two text files when PATTERN is found
本文介绍了找到PATTERN时合并两个文本文件的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在寻找awk或sed解决方案以基于匹配的模式组合2个文件,如下所示:在这种情况下,PATTERN是"cat".文件2中的行数将始终等于文件1中的模式匹配数.
I am looking for an awk or sed solution to combine 2 files based on a matched pattern, like so: The PATTERN in this case is "cat". The number of lines in file 2 will always equal the number of pattern matches in file 1.
文件1:
I am a cat
I am a dog
I am a dog
I am a cat
I am a dog
文件2:
line 1
line 2
合并文件:
I am a cat
line 1
I am a dog
I am a dog
I am a cat
line 2
I am a dog
推荐答案
尝试使用这种awk的衬纸:
Try this awk one liner:
awk 'NR==FNR{a[NR]=$0;next}1;/cat/{print a[++i]}' file2 file1
测试:
$ cat file1
I am a cat
I am a dog
I am a dog
I am a cat
I am a dog
$ cat file2
line 1
line 2
$ awk 'NR==FNR{a[NR]=$0;next}1;/cat/{print a[++i]}' file2 file1
I am a cat
line 1
I am a dog
I am a dog
I am a cat
line 2
I am a dog
这篇关于找到PATTERN时合并两个文本文件的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文