2016-08-24 6 views
0

셸에서 백분율을 계산하고 싶습니다. 그러나 나는 그것을 할 수 없다. 내 스크립트는이 둘의 값을 표시하지 않으며이 스크립트를 실행할 때 을 종료셸에서 백분율을 계산하는 방법

#!/bin/bash 
#n1=$(wc -l < input.txt) #input.txt is a text file with 10000 lines 
n1=10000 
n2=$(awk '{printf "%.2f", $n1*0.05/100}') 
echo 0.05% of $n1 is $n2 

입니다. 이 작은 따옴표 안에 뭐가 당신이, 그렇게 할 경우

+0

왜 안되나요? 너를 멈추게하는 데 오류가 있니? 너를 방해 하는게 뭐야? – Li357

+0

종료되지 않습니다 .. – Kay

+0

[awk 스크립트에서 쉘 변수 사용법] (http://stackoverflow.com/questions/19075671/how-to-use-shell-variables-in-awk-script)의 가능한 복제본 – tripleee

답변

3

awk 당신에게 N1 불법 필드 이름을 줄 것이다. 또한 awk을 계속 읽으려면 /dev/null을 파일로 전달해야합니다. 그런 다음 :

n2=$(awk -v n1="$n1" 'BEGIN {printf "%.2f", n1*0.05/100}' /dev/null) 
1

다음 파일의 기록과 awk에, 나는 당신이 awk이 변수 NR에 어쨌든 않는 기록 자체를 계산하도록 제안 할 것이라고 통과를 계산하기 위해 새로운 프로세스를 시작하기보다는. 따라서 전체 스크립트는 다음과 같습니다.

percentage=$(awk 'END{print NR*0.05/100}' input.txt) 
관련 문제