Để bắt đầu, bạn có thể sử dụng awk
để tìm kiếm các dòng trong tệp có chứa một chuỗi như vậy:
$ awk '/CFS264/ { .... }' lastloggedin
Các bit trong { .... }
sẽ là các lệnh cần thiết để kiểm đếm số lượng dòng với chuỗi đó. Để xác nhận rằng phần trên đang hoạt động, bạn có thể sử dụng phần print $0
trong đó để in những dòng có chứa chuỗi tìm kiếm.
$ awk '/CFS264/ { print $0 }' lastloggedin
Về việc đếm, nếu bạn tìm kiếm "bộ đếm awk", bạn sẽ vấp phải câu hỏi và trả lời SO này có tiêu đề: sử dụng awk để đếm không có hồ sơ . Phương pháp hiển thị ở đó sẽ đủ cho những gì bạn mô tả:
$ awk '/CFS264/ {count++} END{print count}' lastloggedin
Thí dụ
$ last > lastloggedin
$ awk '/slm/ {count++} END {print count}' lastloggedin
758
$ grep slm lastloggedin | wc -l
758
$ grep -c slm lastloggedin
758
LƯU Ý: Bạn không nói trường CFS264 nào liên quan đến last
đầu ra. Giả sử đó là tên người dùng thì bạn có thể hạn chế thêm awk
lệnh chỉ tìm kiếm trường đó như sau:
$ awk '$1=="CFS264" { print $0 }' lastloggedin
awk
? Nếu không, bạn chỉ có thể sử dụnggrep -c CFS264 lastloggedin | wc -l
.