如果在NV_11.tab中找到的字符串少于两个,我想打印一行输入文件11。现在没有捕获文件11中的字符串,因为正在寻找完全匹配。脚本需要清理才能捕获它们。我尝试在$ i旁边添加[^ 0-9],但似乎不允许这样做。
谢谢,Bernardo
awk 'NR==FNR{a[$1]++; next}
{
c=0;
for(i=2;i<=NF;i++){
if($i in a){c++}
}
}
c<=1;' NV_1.tab 11
#NV_1.tab
HS302
HS303
HS304
HS305
HS319
HS321
HS322
HS323
HS324
HS326
HS327
HS328
HS329
HS330
HS331
HS332
HPSD74
#11
HPNK_11595 HS302_01873 HS303_01073
HPNK_11596 HPNK_11596 HPS_02673 HS302_01873
#current output
HPNK_11595 HS302_01873 HS303_01073
HPNK_11596 HPNK_11596 HPS_02673 HS302_01873
#desired output
HPNK_11596 HPNK_11596 HPS_02673 HS302_01873
答案 0 :(得分:1)
我认为这样做最简单的方法是这样的。
在for
循环内添加
s=$i
gsub(/_.*$/, "", s)
然后将($i in a)
替换为(s in a)
。