두 파일을 병합하는 데 도움이 필요합니다.두 파일을 더 많은 조건으로 병합하는 AWK
1 파일 :
header1
raw1 spec1/W a b c d
raw2 spec2/W a c d d
raw3 spec3/W a d b b
2 파일 :
headerXX
headerY
headerZ
z a d a r z j z u o p 45600 raw1 a d spec1 b d a ....
d a r a f g h z u i d 6054 raw2 a f a s a spec2 ...
k o k o j o p s t d v 5000 raw3 d f a f g h ...
출력 파일 :
header1
raw1 spec1/W a b c d 45600
raw2 spec2/W a c d d 6054
raw3 spec3/W a d b b (there won't be number because no spec.)
나는 두 번째 파일에서 $ 13로 첫 번째 파일에서 $ 1을 병합하고 싶습니다 2 번째 파일에서는 16 번째 또는 19 번째 파일이 첫 번째 파일에 $ 2 ("/ W"제외)로 분할됩니다. missmatch가 $ 1 파일 만 인쇄하는 경우 두 번째 파일에서 첫 번째 파일과 $ 12를 일치시킵니다. 첫 경기에 대한
: 그것은 당신을 도울 수있는 경우
는
awk -F'\t' -v OFS="\t" '{split($2,a,"/") print $1,a[1],$2,$3,$4,$5,$6}' | awk 'FNR==NR{a[$2]++; next}; $16 || $19 in a {print $0,??}'
Tahnk 당신이 너무 많은 :
awk -F'\t' -v OFS="\t" 'FNR==NR{a[$1]++; next}; $13 in a {print $0,??}'
와 두 번째 경기를 위해 뭔가 같은 생각합니다.
내가 그것을하려고 AWK -F '\ t' 'FNR == NR {A [$ 1, $ 2], 다음} (($ 13 $ (16)) ($ 13, $ 19) a) {print $ 0} 'file1 file2하지만 작동하지 않습니다 .--( – Vonton