【发布时间】:2018-08-28 11:53:24
【问题描述】:
我有两个不同的脚本来按一个匹配的列合并文件。
file1.tsv - 由制表符分隔的 4 列
1 LAK c.66H>T p.Ros49Kos
2 OLD c.11A+1>R p.Ill1639Los
3 SRP c.96V-T>X p.Zub%D23
4 HRP c.1S>T p.Lou33aa
file2.tsv - 14 列,由制表符分隔
LAK "empty_column" c.66H>T ......
SRP "empty_column" c.96-T>X ......
Ouptut.tsv - 来自 file2.tsv 的所有列,如果匹配,则位于 file1 的第 1 列之后。
LAK "empty_column" c.66H>T ......1
SRP "empty_column" c.96-T>X ......3
我正在使用这两个脚本,但不起作用:
awk -v FILE_A="file1.tsv" -v OFS="\t" 'BEGIN { while ( ( getline <
FILE_A ) > 0 ) { VAL = $0 ; sub( /^[^ ]+ /, "", VAL ) ; DICT[ $3 ] =
VAL } } { print $0, DICT[ $3 ] }' file2.tsv
或
awk 'NR==FNR{h[$3] = $1; next} {print h[$3]}' file1.tsv file2.tsv
感谢您的帮助。
【问题讨论】:
-
@Vonton,请发布更多正确的输入示例,然后让我们知道。