Bài tập: Text Parsing
1. Tìm số sinh viên có tên bắt đầu bằng "Ng" và kết thúc bằng "t".
cat test | sed '1d' | awk '{print $2}' | grep ^Ng | grep t$ > out
echo -n Tong so sinh vien tim thay: >>out | cat out | wc -l >>out
2. Tìm số sinh viên có số điện thoại có 10 số, số bắt đầu là 0122
a=$(cat test | sed '1d' | awk '{print $3}' | grep '^0122[0-9]\{6\}$' | wc -l)
echo Tong sinh vien co so dien thoai dung: $a
3. Kiểm tra số điện thoại của user nhập vào có đúng theo quy ước 38-1234567
read -p "Xin moi nhap so dien thoai: " a
b=$(echo $a | grep '[0-9]\{2\}-[0-9]\{7\}$' |wc -l)
if [[ $b = 0 ]]
then echo 'Ban nhap khong dung dinh dang!'
else echo 'Ban da nhap dung quy tac'
fi
4. Thống kê số file và tổng kích thước các file đó của từng user trong thư mục
read -p "Xin nhap duong dan: " thumuc
if [[ -d $thumuc ]]
then
ls -l $thumuc | sed '1d'| awk '{print $3 " " $5}' | sort -n > out
tong=0
dem=0
cu=$(sed -n '1p' out | cut -f1 -d" ")
while read line
do
moi=$(echo $line | awk '{print $1}')
b=$(echo $line | awk '{print $2}')
if [[ $moi != $cu ]]
then
echo -e "User $cu \t co $dem file, tong cong $tong byte"
tong=$b
dem=1
else
(( tong=$tong + $b ))
(( dem = $dem + 1 ))
fi
cu=$moi
done<out
echo -e "User $moi \t co $dem file, tong cong $tong byte"
else echo "Thu muc khong ton tai!!"
fi
Cach giai ngan gon:
ds=$(ls -l | awk '{print $3}' | sed '1d' | sort -n | uniq)
for i in $ds
do
sofile=$(ls -l | grep $i | wc -l)
tongbyte=0
j in $(ls -l | grep $i | awk '{print $5}')
do
(( tongbyte=$tongbyte + $j ))
done
echo "User $i co $sofile file va tong kich thuoc $tongbyte byte"
done
5. Đếm số kết nối đang kết nối đến port 80 của server (máy hiện tại hoặc server mà ta đang kết nối).
netstat -ntp | awk '{print $4}' | grep ":80" | wc -l
6. Đếm số máy đang kết nối đến port 25 của server, sắp xếp địa chỉ các máy theo thứ tự
Bài 1 chỉ cần:
Trả lờiXóacat test | sed -n '/kh.*h/p' | echo "Tong so sinh vien tim thay la: `wc -l`"
Uhm, cách này cũng hay và nhanh. Cách mình là viết từng bước cụ thể để các bạn dễ tham khảo. mà mình thấy code bạn nên cụ thể thêm cột nào, vs file có nhiều cột thì có thể kết quả sẽ bị sai lệch
XóaBài 2:
Trả lờiXóacat test | sed -n '/0123/p' | grep -w '[0-9]\{10\}' | echo "Tong so dien thoai tim thay la: `wc -l`"
OK cách này cũng hay
XóaBài 3:
Trả lờiXóawhile [ 1 == 1 ]
do
read -p "Nhap vao so username: " ten
read -p "Nhap vao so dien thoai (vd: 38-sodienthoai): " sdt
while [ 0 == 0 ]
do
varsdt=$(echo "$sdt" | grep -w '[3][8]-[0-9]\{7\}' | wc -l)
if [[ ${varsdt} == 0 ]]
then
read -p "Ban da nhap sai, moi nhap lai: " sdt
else
break
fi
done
echo "$ten:$sdt">>danhsach
read -p "Ban co muon nhap tiep khong ? [y/n] " chon
if [[ ${chon} == "n" ]]
then
break
fi
done
echo "
==============================================
Cac so da nhap la:
`cat danhsach`"
+1 :)
Xóacác bạn giải hộ mình bài này với,
Trả lờiXóaĐề tài 14: Với các yêu cầu – cập nhật, tìm kiếm và hiển thị thông tin các sinh viên trong khoa của một trường học, ta lưu trữ thông tin về các khoa, sinh viên và tổ chức dữ liệu gồm:
1> Thông tin về khoa như sau:
Tên trường Ý nghĩa
ID Mã khoa (dùng làm khóa chính)
Ten Tên khoa
Type Loại khoa (Khoa KHCB, Khoa KHKT)
TenTK Tên trưởng khoa
2> Thông tin về các sinh viên trong khoa gồm:
Tên trường Ý nghiã
ID Mã khoa (khoá ngoại liên kết)
Lop Tên lớp học của sinh viên
TenSV Họ tên sinh viên
Yêu cầu:
1> Tổ chức dữ liệu: Thông tin về các khoa và các sinh viên được lưu thành 2 tệp tin.
2> Xây dựng thực đơn chương trình gồm các mục: Thêm khoa mới, Tìm thông tin về khoa, thống kê khoa theo chủng loại, Thoát chương trình
3> Xây dựng các tính năng tương ứng với các mục trong thực đơn
Chú ý:
- Khi chạy chương trình sẽ hiển thị menu chọn (mỗi mục chọn được qui định bởi một phím chữ, ví dụ: thoát chương trình là phím q,….), khi người sử dụng chọn mục nào sẽ thực hiện tính năng tương ứng.
- Chương trình cho phép người sử dụng cập nhật thêm các thông tin về khoa mới, cập nhật danh sách sinh viên của khoa, sửa đổi thông tin về khoa và các sinh viên trong khoa, hiển thị danh mục các khoa, danh sách sinh viên trong từng khoa, tìm kiếm thông tin về khoa và thông tin về các sinh viên trong khoa.