我有以下文件:AWK:在第一個文件搜索字符串對第二
data.txt
Estring|0006|this_is_some_random_text|more_text
Fstring|0010|random_combination_of_characters
Fstring|0028|again_here
allids.txt
(這裏的列由分號隔開,真正的輸入製表符分隔)
Estring|0006;MAR0593
Fstring|0002;MAR0592
Fstring|0028;MAR1195
請注意:data.txt
:重要的是這裏的冷杉t雙「列」 = name|number
)
現在我想用awk
要搜索的data.txt
第一部分(name|number
)在allids.txt
和輸出的第二列(從MAR
)
所以我預計產出將是(再次製表符分隔):
Estring|0006|this_is_some_random_text|more_text;MAR0593
Fstring|0010|random_combination_of_characters
Fstring|0028|again_here;MAR1195
我不知道現在如何搜索AWK內的第一部分保守的,剩下的應該然後就:
awk 'BEGIN{FS=OFS="\t"} FNR == NR { a[$1] = $1; next } $1 in a { print a[$0], [$1] }' data.txt allids.txt
謝謝@ hek2mgl糾正! – rororo