我有两个文件(见下文),并希望从文件2(2列)中查看文件1中的模式。我认为这很容易,但我找不到任何线索如何将匹配项打到同一行
File1
ABC
DEF
GHI
File 2
ABC SeqX
ABC SeqY
ABC SeqP
DEF SeqW
DEF SeqO
GHI SeqR
GHI Seql
输出应如下所示:
ABC SeqX SeqY SeqP
DEF SeqW SeqO
GHI SeqR Seql
我知道它必须是:grep -f file 1 file2 > output
答案 0 :(得分:0)
使用awk是,而不是as_is with grep
awk 'FNR==NR { Ls[$1];next}
( $1 in Ls) { Ds[ $1] = Ds[ $1] " " $2 }
END { for( L in Ls ) print L Ds[ L] }
' File1 File2
答案 1 :(得分:0)
短awk
解决方案:
awk 'FNR==NR{a[$1]=a[$1]" "$2; next}{if($1 in a) print $1a[$i]}' file2 file1
输出:
ABC SeqX SeqY SeqP
DEF SeqW SeqO
GHI SeqR Seql