【发布时间】:2016-05-06 00:45:10
【问题描述】:
我有带有值的表,我必须找到匹配:与其他人的第一列并打印匹配项。
输入:
A:0 A:0.7541 A:0.7396 A:0.7694
A:0 0:0 0:0 0:0
C:0 C:0.8408 C:0.8459 C:0.7939
G:0 G:0.3415 G:0.3290 G:0.4228
G:0 G:0.0343 G:0.0378 T:8.237e06,G:0.02437
C:0 C:0.3895 C:0.3837 A:8.255e06,T:8.255e06,C:0.3623
输出:
A:0 0.7541 0.7396 0.7694
A:0 0 0 0
C:0 0.8408 0.8459 0.7939
G:0 0.3415 0.3290 0.4228
G:0 0.0343 0.0378 0.02437
C:0 0.3895 0.3837 0.3623
对于最后一行.. 如果 C 在第二列中,则在这种情况下仅打印匹配字母 C 之后的数字,所有列都相同,但可能有更多值由“,”分隔。因此,在这种情况下,只为该行打印包含匹配字母 C 的数字。 我写道:
awk '{split ($1,a,":");split ($2,b,":"); split($3,c,":"); split($4,d,":");
if(a[1]=b[1] && a[1]=c[1] && a[1]==d[1]) print $0}' /home/fil/Desktop/uprava.txt
【问题讨论】: