Bài thực hành 5: Mở rộng
1. Trong file danh sách điện thoại sinh viên, lấy số điện thoại sinh viên. File có 2 cột: cột 1 là tên sv, cột 2 là số điện thoại. Hai cột phân cách bằng dấu ":". Lọc các số không phải là số điện thoại ra và sắp xếp các số điện thoại theo thứ tự tăng dần. Cấu trúc số điện thoại 090-123-4567. Lưu ý: dấu "-" có thể có hoặc không.
cat sv | grep '[0-9]\{3\}-\{0,1\}[0-9]\{3\}-\{0,1\}[0-9]\{4\}$' | tr -d "-" |
awk -F ':' '{print $2 ":" $1}' > out
ds=$(cut -d":" -f1 out | sed -n '/.\{11\}/!p' | sort -n)
for i in $ds
do
cat out | grep $i | sed 's/./&-/3' | sed 's/./&-/7'
done > ok
2. Phòng đào tạo (PDT) gởi danh sách các sinh viên đã đăng ký thành công môn học như sau:
STT: MSSV:Môn học đã đăng ký thành công 1:Môn học đã đăng ký thành công 2:.....
Ngoài ra, PDT còn gởi 1 file danh sách sinh viên gồm 3 cột:
STT: MSSV:Tên sinh viên
PDT yêu cầu gởi email thông báo đến sinh viên các môn học đã học thành công. Để thực hiện việc này, chúng ta thực hiện các bước sau:
=>Bước 1: Tạo file với tên là MSSV, nội dung như sau:
==================================
Phòng đào tạo xin thông báo:
Bạn sinh viên "Tên sinh viên" MSSV :"MSSV" đã đăng ký thành công các môn học sau đây:
1. Môn 1
2. Môn 2
......
Trân trọng,
Phòng đào tạo Đại học Hoa Sen
=================================
Trong đó MSSV, Tên sinh viên, Môn học thành công lấy từ 2 file đã được cung cấp bởi PDT
=>Bước 2: Gởi email đến sinh viên
mail -s "Mon hoc dang ky thanh cong" MSSV@sinhvien.hoasen.edu.vn Noidung
Trong đó nội dung là file đã được soạn và MSSV là MSSV tương ứng.
#!/bin/bash
cat sv | awk -F ':' '{print $2 ":" $3}'>dsten
cat dkmh | sed 's/^[0-9][0-9]*://g' > dsdk
mssv=$(cat sv | awk -F ':' '{print $2}')
for i in $mssv
do
echo ===============================>>file$i
echo Phong dao tao xin thong bao:>>file$i
ten=$(cat dsten | grep $i | cut -d":" -f2)
echo Sinh vien \"$ten\" co MSSV \"$i\" da dang ky thanh cong cac mon hoc sau:>>file$i
stt=1
mon=$(cat dsdk | grep $i | sed 's/^[0-9][0-9]*://g' | tr ':' '\n')
for j in $mon
do
echo " $stt . $j">>file$i
(( stt= $stt + 1 ))
done
echo -------------->>file$i
echo Tran trong,>>file$i
echo Phong dao tao DAI HOC HOA SEN>>file$i
echo ===============================>>file$i
mail -s "Mon hoc dang ky thanh cong" $i@sinhvien.hoasen.edu.vn < file$i
#rm -f file$i
done
Đây là nội dung của 2 file đi kèm:
file 1: dkmh
1:092998:LapTrinhShell:CEH2:Linux:TruyenThongKoDay
2:092999:CEH2:Microsoft1:CEH1
3:093000:CE1:CEH2:LapTrinhShell:BaoMatPhucHoiMang
94:093001:Linux1:Linux2:VOIP
5:093002:LapTrinhShell
6:093003:BaoMatPhucHoi:DienToanDamMay:Linux2
777:093004:DinhTuyenLienMang:ThietBiQuanTriVaLuuThongMang
file 2: sv
1:092998:Le Quang Hien
2:092999:Gia Bao
3:093000:Bao Chau
94:093001:Le Dinh Huy
5:093002:Anh Tu
6:093003:Bui Phu Duc
777:093004:Le Quoc Nhat Dong
Không có nhận xét nào:
Đăng nhận xét