【发布时间】:2019-01-23 13:45:02
【问题描述】:
我有两个文件。第一个是FileA,它由三列组成(制表符分隔),见下面的内容
文件A
House1 dog blue
House2 cat yellow
House3 bird red
House4 cow orange
House5 duck black
House6 cow brown
第二个是 FileB,包含两列(制表符分隔) FileB 第 1 列包含 FileA 第 2 列中所有唯一值的列表。 FileB 第 2 列包含我希望它们在第 1 列中的对应值的值列表在 FileA 中替换为
文件B
dog 1
cat 2
cow 3
duck 4
bird 5
换句话说,我希望找到 FileA 第 2 列中与 FileB 第 1 列匹配的所有值,并将它们替换为 File B 第 2 列中的相应值,并将新的 FileA 输出到新文件(“FileA2” )
新 FileA (FileA2) 的输出应如下所示(即名称第 2 列已全部更改为数字,每个更改对应于 FileB 中的查找替换条件)
House1 1 blue
House2 2 yellow
House3 5 red
House4 3 orange
House5 4 black
House6 3 brown
是否有任何 awk、grep 或 sed 单行程序可以做到这一点?
注意:在现实生活中,我的“FileA”在第 2 列中有超过 800,000 行和超过 4000 个唯一值,因此最好通过我的 Linux 终端执行此操作。
另外,为了将来参考,是否有任何单行方法可以从给定文件的单个列中提取唯一值列表?
提前感谢您的热心帮助。
【问题讨论】:
-
您会发现很少有人会为您编写任何代码。当您提出问题和一些说明问题的代码时,此站点效果最佳。我们鼓励您对如何使用最适合您的任何工具转换这些数据进行一些研究。见How to Ask。
-
哪种语言?