【发布时间】:2014-01-22 16:50:17
【问题描述】:
首先,我必须道歉:我知道有很多不同的话题已经回答了我的问题,但你自己会看到,AWK 并不是我真正的好朋友。
你们都知道这个故事,对吧? ;) “嘿,随机员工,你是被选中的人!我需要你学习这个我们都不知道的奇怪东西。你的截止日期是明天,祝你好运!”
我不会再抱怨它了(承诺!:p),但经过多次尝试,我无法真正理解关于 AWK 的所有内容(谁说“一件事”?)。
所以,这是我的问题!
我有两个文件,包含以下列:
文件 A.txt:
A B C D E F G H
文件 B.txt:
A C F I
我想通过将这两个文件合并到另一个文件中来获得以下输出:
输出文件 C.txt:
A B C D E F G H I
我想在它们之间进行连接,将“I”添加到已存在的具有 A、C 和 F 列的行中,并删除其他行。
到目前为止,我知道我必须使用这样的东西:
awk '
FNR==NR{Something ;next}
{print $0}
' A.txt B.txt
是的,我知道。一开始听起来很糟糕。
那里有英雄吗?
【问题讨论】:
-
我们会一直考虑 A.txt 中的第 1、第 3 和第 6 列吗?或者只是来自 B.txt 的行在 A.txt 的某行中的任何位置有 3 个值?如果 B.txt 包含
A B C J怎么办? -
感谢您的快速回复!编辑:抱歉,没有看到您编辑了您的评论。最后,我们需要每一行匹配文件B第1、2和3列的第1、3和6列。为了解释我自己,B.txt只有4列,而A.txt有8列。
-
请参阅stackoverflow.com/questions/5467690/…。似乎是非常相似的问题。
标签: awk