Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何使用另一个.txt文件作为列表从.txt文件中提取条目_Bash_Sed_Awk - Fatal编程技术网

Bash 如何使用另一个.txt文件作为列表从.txt文件中提取条目

Bash 如何使用另一个.txt文件作为列表从.txt文件中提取条目,bash,sed,awk,Bash,Sed,Awk,我真的很感激你能帮我 我目前有两个文本文件,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中

我真的很感激你能帮我

我目前有两个文本文件,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
AB307 0.112 0.220 0.341
AB101 0.223 0.474 0.175
AB209 0.245 0.199 0.222

有人知道我如何做到这一点吗,最好使用awk或类似的工具?

这将打印文件A的行,其中第一个字是文件B中的行

$ 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

这将打印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

grep足以胜任这项工作:

grep -Fwf fileB.txt fileA.txt

grep足以胜任这项工作:

grep -Fwf fileB.txt fileA.txt