평균 급여를 계산하는 Bash 스크립트

평균 급여를 계산하는 Bash 스크립트

직원의 급여가 포함된 문서를 주면.

파일의 첫 번째 줄은 다음과 같습니다.

num job id salary

단어가 공백으로 구분된 경우.

나머지 줄은 다음과 같습니다.

1 engineer 034524566 8000 2 manager 122334455 15000 3 engineer 156254132 9000 4 student 142635472 5000

이 파일을 매개변수로 사용하고 급여 평균을 인쇄하는 스크립트를 작성해야 합니다. 예를 들어 salaries위 파일이 있고 이 명령을 입력하면 다음과 같이 /average salaries인쇄됩니다.

9250

내가 한 일: 도우미 스크립트를 작성했습니다 calc.

#calc "$1"

(( a=0 ))
(( sum=0 ))
while read line; do
(( value = `cut -d" " -f5 $line )) 
(( sum = $sum + $value+0 ))
(( value = 0 ))
done
echo (( sum/a ))

#average $1
cat $1 | calc

첫째, 필요하지 않은 첫 번째 줄을 건너뛰지 않았습니다. 어떤 아이디어가 있나요? 둘째, 더 쉬운 방법이 있을 것 같아서 누구든지 제안 사항이 있으면 감사하겠습니다.

답변1

grep, pastebc:을 사용하십시오 .

% count="$(tail -n 1 salary.txt | grep -o '^[^\s]\+')"

% echo "$count"
4 

% salary="$(grep -o '[^ ]\+$' salary.txt | paste -sd+)"

% echo "$salary"
salary+8000+15000+9000+5000

% echo "($salary)/$count" | bc 
9250

bcsalary덧셈을 버릴 만큼 똑똑합니다 .

관련 정보