Tôi có một tập lệnh hàng ngày truy xuất số liệu thống kê phần cứng từ tất cả các máy chủ RHEL của tôi mỗi đêm và lưu chúng vào một yyyymmdd_daily.log tập tin. Tôi có các tập lệnh khác mà tôi chạy trên các tệp này để trích xuất dữ liệu cụ thể (ví dụ: Ổ đĩaArrayStatus, Trạng thái phần cứng, ĐĩaFreeSpace, v.v.) cho các nhiệm vụ khác nhau.
Ví dụ Trạng thái phần cứng đầu ra kịch bản:
#######################
Máy chủ: abc
** Người hâm mộ **
Sức khỏe: Được
** Nguồn điện **
Dự phòng: Đầy đủ
#######################
Máy chủ: bcd
** Người hâm mộ **
Sức khỏe: Một phần
** Nguồn điện **
Dự phòng: Một nửa
#######################
Máy chủ: cde
** Người hâm mộ **
Sức khỏe: Xuống
** Nguồn điện **
Dự phòng: Không có
#######################
v.v... cho 44 máy chủ
Vì hiếm khi xảy ra bất kỳ lỗi nào, tôi muốn tô màu các dòng hiển thị bất kỳ loại lỗi nào khi tôi chạy tập lệnh. Tôi có thể chọn các dòng để xem xét kỹ lưỡng bằng grep:
./Phần cứngStatus | grep '^Sức khỏe\|^Dự phòng\|$'
Nhưng từ đây, tôi CHỈ cần tô màu những dòng đã xem xét kỹ lưỡng mà KHÔNG kết thúc bằng những câu trả lời thỏa đáng tương ứng của chúng:
./Phần cứngStatus | grep --color=auto -v 'Ok$\|Full$'
Tôi đã thử chuyển câu lệnh grep lựa chọn dòng sang grep thứ hai hoặc bằng cách sử dụng egrep, nhưng nó chỉ loại bỏ bất kỳ dòng nào không có phản hồi thỏa đáng từ đầu ra của tập lệnh.
Bất kỳ sự trợ giúp nào cũng sẽ được đánh giá cao.