2014-10-02 77 views
3

的每一行我有兩個文件:比較一個文件中的每一行與另一個文件

文件1

cat file1 
A,1 
B,2 
C,2 
D,3 

文件2

cat file2 
A 
A 
A 
B 
B 
C 
C 
D 

所需的輸出

cat output 
A,A,1 
A,A,1 
A,A,1 
B,B,2 
B,B,2 
C,C,2 
C,C,2 
D,D,3 

由於你可以看到,每行file1應與每行file2匹配,如果它們匹配,則應將file1的行添加到file2中的匹配行中。我試過join但它不起作用。我猜搜索需要遞歸,但當涉及兩個文件時,我不知道如何去做。

任何幫助將不勝感激。

感謝

回答

2

使用awk

awk -F, -v OFS=, 'FNR==NR {a[$1]=$0;next} $1 in a{print $1, a[$1]}' file1 file2 
A,A,1 
A,A,1 
A,A,1 
B,B,2 
B,B,2 
C,C,2 
C,C,2 
D,D,3 
+0

感謝它很好。 – rohit 2014-10-02 15:37:00

+0

不客氣,很高興它解決了。 – anubhava 2014-10-02 15:37:42

2
join -t',' -o'1.1,2.1,2.2' file2 file1 

這一行做的。

相關問題