我正在获取两个输入文件,一个带有特定的 ID 号,另一个带有大量 ID 号和附加列。后一个文件包含每个 ID 号的多行,我需要从第一个文件中提取与 ID 匹配的所有行。这些行然后必须打印在一个新文件中。
编辑 1:用实际的摘录替换了示例文件
编辑 2:删除了摘录中的额外空格,但不是实际文件。文件可能需要以某种方式清理,但不清楚如何清理。
文件 1:
AT1G56430
AT3G55190
AT3G22880
Run Code Online (Sandbox Code Playgroud)
文件2:
AT1G01010|GO:0043090|RCA
AT1G56430|GO:0010233|IGI
AT1G56430|GO:0009555|IGI
AT1G56430|GO:0030418|IGI
Run Code Online (Sandbox Code Playgroud)
预期产出
AT1G56430|GO:0010233|IGI
AT1G56430|GO:0009555|IGI
AT1G56430|GO:0030418|IGI
Run Code Online (Sandbox Code Playgroud)
[[
我试过了:
awk -F'|' 'NR==FNR{c[$1$2]++;next};c[$1$2] > 0' file1 file2 > output.txt
Run Code Online (Sandbox Code Playgroud)
和:
grep -Ff file2 file1 > output.txt
Run Code Online (Sandbox Code Playgroud)
我知道在这些论坛和其他论坛上发布了许多类似的问题。然而,这些没有提到如何处理输出……也没有提到重复。我已经尝试了其中 4 个的解决方案,已经为此搞砸了好几个小时,并不断遇到同样的问题:一个空白的输出文件。
我是 awk 的新手,非常感谢您的帮助。抱歉,如果这是语法等方面的简单问题;请让我知道。谢谢您的帮助。