我有文件 A.txt,它是唯一 ID(第 1 列)及其相应值(第 2 列)的列表:
A.txt
ABC1D_T1_B1 123.4
ABC2D_T1_B2 146.7
ABC3D_T1_B1 567.8
ABC4D_T0_B2 96.8
ABC1D_T0_B1 145.9
Run Code Online (Sandbox Code Playgroud)
第二个文件是 B.txt,不是唯一的,但有重复的条目
ABC1D_T1_B1
ABC1D_T1_B1
ABC2D_T1_B2
ABC3D_T1_B1
ABC3D_T1_B1
ABC4D_T0_B2
ABC1D_T0_B1
ABC1D_T0_B1
Run Code Online (Sandbox Code Playgroud)
如何从 A.txt grep B.txt 并报告重复列表的 col 2 的值
结果:
ABC1D_T1_B1 123.4
ABC1D_T1_B1 123.4
ABC2D_T1_B2 146.7
ABC3D_T1_B1 567.8
ABC3D_T1_B1 567.8
ABC4D_T0_B2 96.8
ABC1D_T0_B1 145.9
ABC1D_T0_B1 145.9
ABC1D_T0_B1 145.9
Run Code Online (Sandbox Code Playgroud)
通常,如果 B.txt 中存在唯一条目,则
grep -Fw -f B.txt A.txt >Result.txt
Run Code Online (Sandbox Code Playgroud)
如何使用 grep 为多个重复条目执行此操作?
你可以通过使用一个简单的join
:
join A.txt B.txt
Run Code Online (Sandbox Code Playgroud)
但是,为了工作,两个文件都必须按连接键排序(这里是第一个(空白分隔)字段)。要做到这一点,只需使用sort -b filename
.