awk 프로그램의 일부 이해

awk 프로그램의 일부 이해

내 친구가 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

하지만 다음 줄을 이해하지 못합니다.

 

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

log($i+1)는 여기서 무엇을 하고 있나요?

답변1

AWK에서는 log()자연 로그 함수가 $i다음과 같습니다 .현재 레코드의 번째 필드입니다. 그래서 log($i+1)가치는번째 필드에 1을 더하고 합계의 자연 로그를 반환합니다.

관련 정보