(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=