gpt4 book ai didi

linux - 在 bash 脚本中合并两个文本文件

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

我有一个包含以下内容的文本文件 (FILE_A.txt):

Content1
Content2
Content3

和其他包含此内容的文本文件 (FILE_B.txt):

A[#]
B[#]
C[#]

我想以这种方式将 FILE_A.txt 和 FILE_B.txt 合并到其他文件 (FILE_C.txt) 中:

A[Content1]
B[Content2]
C[Content3]

我如何在 Linux 中使用 bash shell(sed、cut、grep 等)来实现这一点?

最佳答案

我们开始吧。

# awk 'NR==FNR{a[NR]=$0;next;} sub(/#/,a[FNR])' FILE_A.txt FILE_B.txt
A[Content1]
B[Content2]
C[Content3]

这是如何运作的?

  • NR==FNR - 如果记录号与 FILE 记录号匹配,则导致运行以下语句 - 也就是说,我们当前仅读取第一个 tfile。
  • {a[NR]=$0;next;} - 将第一个文件的值存储在数组中。
  • sub(/#/,a[FNR]) - 进入第二个文件后,将 # 替换为第一个文件中存储的匹配值。请注意,这不在大括号内,因此它被评估为一个条件。如果 sub() 语句成功,则打印当前行。

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

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