AWK를 사용하여 파일의 열에 부동 소수점 숫자 곱하기

AWK를 사용하여 파일의 열에 부동 소수점 숫자 곱하기

(1.0 + 0.25)와 같이 파일의 열에 부동 소수점 숫자를 곱해야 합니다.

file1.txt 파일에서 awk 명령을 사용하여 추출된 열 3(숫자 포함)이 있습니다.

awk '{ print $3 }' file1.txt > coloumn1

1.0  
1.2  
1.3  

다음 값을 달성하려면 모든 열 값에 (1.0 + 0.25)를 곱하고 싶습니다. 요구 사항은 다른 p1 값을 1.1로 사용하는 것입니다.

( 1.0*(p1+0.25))  
( 1.2*(p1+0.25))  
( 1.3*(p1+0.25))  

1.250  
1.500  
1.625  

내 스크립트는

#bin/bash
p1=1.0
val=`echo $p1 + 0.25 | bc`
awk -F, '{$1*=$val}1' OFS=, coloumn1 > coloumn_mod

그러나 위의 awk 명령은 예상된 결과를 반환하지 않습니다.

위 명령을 수정하는 데 도움을 주시겠습니까?

답변1

awk -v p1='1.0' '{ printf("%.3f\n", $0*(p1+0.25) ) }' infile

입력 파일에 하나 이상의 열이 있고 쉼표 문자로 구분되어 있고 세 번째 에서 이 작업을 수행하려는 경우 다음을 사용할 수 있습니다.

awk -F, -v p1='1.0' '{ printf("%.3f\n", $3*(p1+0.25) ) }' infile

에서는 전체 레코드/줄, 첫 번째 필드/열, 두 번째 필드/열, 세 번째 필드 등을 나타냅니다. awk여기서 필드는 기본 공백 문자(탭/공백)로 분할되거나 코드 블록으로 또는 코드 블록 내에서 재정의 할 수 있습니다. 또한.$0$1$2$3-F-v FS=

관련 정보