Unix 通过匹配另一个文件中的另一个字段来替换一个文件中的字段值

Unix 通过匹配另一个文件中的另一个字段来替换一个文件中的字段值,unix,Unix,我有一个文件text1,其中的字段如下: box|domain|service|Consumer|organisation 例如,对于这两个领域: Datapower|utility|accountLog|verizon|google Datapower|utility|accountLog|veri|google 另一个用于映射的查找文件text2,如下所示: Verizon|myself 我要寻找的是,每当verizon在text1中存在第四个字段时,就应该使用查找文件text2

我有一个文件
text1
,其中的字段如下:

box|domain|service|Consumer|organisation
例如,对于这两个领域:

Datapower|utility|accountLog|verizon|google  
Datapower|utility|accountLog|veri|google
另一个用于映射的查找文件
text2
,如下所示:

Verizon|myself 
我要寻找的是,每当verizon在
text1
中存在第四个字段时,就应该使用查找文件
text2
中的映射将其替换为第二个字段。但同时,我还需要记住,如果通过在
text2
中进行查找,在
text1
中找不到与veri匹配的内容,则该行应按原样打印。请建议

谢谢,
MT

最简单的方法是首先将整个文件读入两个带有结构元素的向量,然后对其进行指定的更改。最后将所有内容重写到同一个文件中。
在文本文件中,单步文件操作很难进行,在这种情况下,如果单词长度不同,则很难进行单词交换。

请参考示例详细说明。有人能理解这种情况吗?我在这个论坛上查看了类似的问题,但这没有帮助,因为一切都与匹配时的替换有关,但在没有匹配时不保留行。你显然听说过StackOverflow.com是一个免费的编码服务。抱歉,它不是(即使免费编码总是发生)。您需要指明要使用哪种(计算机)语言,并且应该为该语言添加一个标记。我建议在这里花一两个小时阅读带有
awk
标签的问题,因为类似的问题(术语略有不同)总是会被问到。祝你好运。好吧,因为这是我的第一篇帖子,所以从下一次开始我将发布tc。我使用k shell编写脚本;我知道awk将如何用于匹配和替换,我面临的唯一问题是在查找文件中找不到匹配项并从主文件中打印行。你能帮忙吗?