gpt4 book ai didi

linux - 找到 PATTERN 时合并两个文本文件的行

转载 作者:太空狗 更新时间:2023-10-29 11:35:59 26 4
gpt4 key购买 nike

我正在寻找一个 awk 或 sed 解决方案来根据匹配的模式组合 2 个文件,如下所示:本例中的模式是“猫”。文件 2 中的行数将始终等于文件 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

最佳答案

NR==FNR 结构非常方便,但如果您打算加载到内存中的文件非常大,它可能会有风险。

相反,awk 可以同时读取两个文件。

$ awk '1; /cat/{getline this<"file2";print this}' file1
I am a cat
line1
I am a dog
I am a dog
I am a cat
line2
I am a dog

程序开头的 1 打印 file1 中的当前行,无论它是什么。脚本中的第二个条件检查你的魔法词,然后从 file2 中读取并打印它。您的内存占用量仍然很小,因为您没有使用其中一个文件的内容填充数组。

关于linux - 找到 PATTERN 时合并两个文本文件的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38621535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com