Linux 中如何将文本中连续的字段转换成一个字段显示
001、
[root@localhost test]# ls a.txt [root@localhost test]# cat a.txt ## 测试文本 gene mRNA exon exon exon exon exon exon exon CDS CDS CDS CDS exon CDS gene gene mRNA exon exon aaaa aaaa exon exon exon CDS CDS CDS CDS CDS CDS [root@localhost test]# awk '{printf("%s\t",$1); a=$1; for(i = 1; i <= NF; i++) {if($i==a){} else {printf("%s\t", $i)}; a=$i} printf("\n")}' a.txt ## 将多个连续的重复字段以一个字段显示 gene mRNA exon CDS exon CDS gene mRNA exon aaaa exon CDS

。
002、只针对特定字段
[root@localhost test]# ls a.txt [root@localhost test]# cat a.txt ## 测试文本 gene mRNA exon exon exon exon exon exon exon CDS CDS CDS CDS exon CDS gene gene mRNA exon exon aaaa aaaa exon exon exon CDS CDS CDS CDS CDS CDS [root@localhost test]# awk 'BEGIN{key=0}{for(i = 1; i <= NF; i++) {if(key == 0 && $i == "exon") {printf("%s\t", $i); key++} else if($i != "exon"){printf("%s\t", $i)} }; key = 0; printf("\n")}' a.txt ## 对exon进行去重复 gene mRNA exon CDS CDS CDS CDS CDS gene gene mRNA exon aaaa aaaa CDS CDS CDS CDS CDS CDS

。

浙公网安备 33010602011771号