ajuda a entender uma parte de um programa awk

3

Um amigo meu escreveu um código no unix

awk '\
BEGIN { OFS = "\t"; FS = "\t"} ;\
(NR >= 2){\
split($3,a,"|");\
if(a[1]!~ /\?/) {\
  print a[1], a[2] > "geneinfo_tumor.txt";\
  printf "%s", a[1] > "gene_tumor.txt";\
  for (i = 2; i <= 1099; i++)  printf "\t%g", log($i+1) > "gene_tumor.txt";\
  printf "\n" > "gene_tumor.txt";}\
}' tumor.exp.gt.txt

mas não entendo a seguinte linha

for (i = 2; i <= 1099; i++)  printf "\t%g", log($i+1) > "gene_tumor.txt";\

o que o log ($ i + 1) faz aqui ??

    
por Marwah Soliman 08.02.2017 / 22:45

1 resposta

5

No AWK, log() é a função de logaritmo natural e $i é o valor do campo i th no registro atual. Portanto, log($i+1) recebe o valor do campo i     

por 08.02.2017 / 22:51

Tags