2011-06-20 23 views
5

Aşağıdakileri yapmak istiyorum ve birisinin bana şu şekilde yardımcı olması için gerçekten minnettarım:Belirli bir sütuna göre iki dosyanın bash - instersection?

File1.txt ve File2.txt adında 2 tab-delim dosyasına sahibim (aşağıda gösterilmektedir). File1.txt dosyasındaki 2. sütun (integer), File2.txt dosyasının 3. sütununda (tamsayı) bulunursa, , new_File1.txt ve new_File2.txt dosyalarını yapmak ve satırlarını eklemeye devam etmek istiyorum.

file1.txt:

1 80 xyc 
1 304 xyv 
1 813653 xyb 
1 813661 xyn 
1 954653 xym 

file2.txt:

new_File1.txt:

abvb 1 178 
aaa 1 304 
ttt 1 353 
ggg 1 98971 
ghj 1 813653 

Yani örneğin benim new_File1.txt gibi görünecektir:

1 304 xyv 
1 813653 xyb 

new_File2.txt:

aaa  1 304 
ghj  1 813653 

Yardımlarınız için teşekkür ederiz!

join -1 2 -2 3 -t '\t' file1.txt file2.txt 

ama bana şu çıktıyı verir: ben kullandım Sen join(1) aradığınız

\1  80  xyc\abvb  1  178 
\1  80  xyc\aaa 1  304 
\1  80  xyc\ttt 1  353 
\1  80  xyc\ggg 1  98971 
\1  80  xyc\ghj 1  813653 
\1  304  xyv\abvb  1  178 
\1  304  xyv\aaa 1  304 
\1  304  xyv\ttt 1  353 
\1  304  xyv\ggg 1  98971 
\1  304  xyv\ghj 1  813653 
\1  813653 xyb\abvb  1  178 
\1  813653 xyb\aaa 1  304 
\1  813653 xyb\ttt 1  353 
\1  813653 xyb\ggg 1  98971 
\1  813653 xyb\ghj 1  813653 
\1  813661 xyn\abvb  1  178 
\1  813661 xyn\aaa 1  304 
\1  813661 xyn\ttt 1  353 
\1  813661 xyn\ggg 1  98971 
\1  813661 xyn\ghj 1  813653 
\1  954653 xym\abvb  1  178 
\1  954653 xym\aaa 1  304 
\1  954653 xym\ttt 1  353 
\1  954653 xym\ggg 1  98971 
\1  954653 xym\ghj 1  813653 

cevap

5

.

İlgili konular