1

我真的很感激这方面的一些帮助。

我目前有两个文本文件,fileA.txt 如下所示:

AB307 0.112 0.220 0.341
AB101 0.223 0.474 0.175
AB201 0.101 0.298 0.001
AB209 0.245 0.199 0.222

等等。它基本上是一个站点列表,后面有一堆坐标。

在我的第二个文本文件 fileB.txt 中,它是一个仅包含站点名称的列表,例如:

AB101
AB307
AB209

我想做的是制作第三个文件,该文件仅包含 fileB 上列出的条目,但具有 fileA 中所示的所有详细信息,即,使用上述条目,它将生成 fileC.txt,如下所示:

AB307 0.112 0.220 0.341
AB101 0.223 0.474 0.175
AB209 0.245 0.199 0.222

有谁知道我该怎么做,最好使用 awk 或类似的东西?

4

2 回答 2

6

grep 足以胜任这项工作:

grep -Fwf fileB.txt fileA.txt
AB307 0.112 0.220 0.341
AB101 0.223 0.474 0.175
AB209 0.245 0.199 0.222
于 2013-10-22T16:40:40.930 回答
2

这将打印 fileA 的行,其中第一个单词是 fileB 中的行

$ awk 'NR==FNR{a[$0];next}$1 in a' fileB fileA
AB307 0.112 0.220 0.341
AB101 0.223 0.474 0.175
AB209 0.245 0.199 0.222
于 2013-10-22T16:17:22.363 回答