직원의 급여가 포함된 문서를 주면.
파일의 첫 번째 줄은 다음과 같습니다.
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
, paste
및 bc
:을 사용하십시오 .
% 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
bc
salary
덧셈을 버릴 만큼 똑똑합니다 .