Blog tổng hợp và chia sẻ nội dung và học thuật về IT. Cảm ơn các bạn đã quan tâm.
Thứ Hai, 25 tháng 2, 2013
[Shell] Hiến Máu nhân đạo
5. Cho cấu trúc file thông tin sinh viên hiến bao gồm 4 cột: MSSV, Tên sinh viên, ngày hiến máu, số máu được hiến, loại máu. Các cột cách nhau bằng dấu ":". Lưu ý một sv có thể hiến máu nhiều lần.
a. Tìm tổng số máu sinh viên đã hiến.
b. In tổng số máu theo loại. Lưu ý: ch ỉ có các loại máy O, AB, A, B
c. In số máu mỗi sinh viên đã hiến theo cấu trúc sau: Ten sinh vien - MSSV đã hiến số máu
Ví du: Sinh viên Nguyễn Văn An 09123VT đã hiến 400 ml máu
d. Tìm sinh viên đã hiến nhiều máu nhất.
#!/bin/bash
echo -n "--------Tong so mau sinh vien da hien: "
cat sv | awk -F':' '{tong+=$4} END {print tong}'
echo "-------Tong so mau theo loai: "
awk -F':' '{print $5}' sv | sort | uniq -c >dem
awk '{print "Nhom mau " $2 " co tong cong "$1}' dem
awk -F':' '{print $2 " " $1 " " $4}' sv | sort > somau
list=$(cat somau | awk '{print $2}' | sort | uniq)
for i in $list
do
x=$(cat somau | grep $i | awk '{print $1 }' | uniq)
y=$(cat somau | grep $i | awk '{sum+=$3} END {print sum}')
echo Sinh vien $x "-" $i "da hien $y ml"
done>ds
echo -------So mau moi sv da hien:
cat ds
echo -------Sinh vien hien mau nhieu nhat:
h=$(cat ds | sed 's/^.*da hien //g' | sort -nr | sed -n '1p' | awk '{print $1}')
awk '$8 >= '$h' {print $0}' ds
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét