Câu trả lời:
Một ý tưởng di chuyển là dẫn đầu ra của tailthông qua sedvà thay thế dòng mới bằng chuông / dòng mới.
Nhưng có một giải pháp dễ dàng hơn nếu bạn sử dụng tailtrong cửa sổ x . Ở đó bạn có thể thực hiện một hành động khi nội dung của cửa sổ thay đổi (nhấp nháy, chuông, bất cứ điều gì).
sedÝ tưởng này rất tuyệt vời nhưng tôi không biết đủ 'sed' để làm cho nó hoạt động, có vẻ như tôi không thể nắm bắt được các dòng mới theo cách thông thường (mà tôi đã quen), tôi đoán tôi cần nói với sed không giải thích dòng dòng đến theo dòng.
sed -e $'s/$/\a/'thêm một $'\a'(ký tự chuông theo cú pháp ksh / bash / zsh) ở cuối mỗi dòng.
sedregexpt là một chút kỳ lạ với đôi mắt ngây thơ của tôi.
$'...'cú pháp không phổ biến. Ví dụ: [t] csh không hỗ trợ nó.
nếu bạn sử dụng GNU screen, bạn có thể đặt nó để "xem" cửa sổ bằng đuôi và nó sẽ cảnh báo bạn trên thanh trạng thái hoặc bằng chuông xác định của termcap của bạn, rằng có đầu ra mới trong cửa sổ đó.
http://www.gnu.org/software/screen/manual/html%5Fnode/Monitor.html#Monitor
chỉnh sửa: chỉ cần thêm điều này, vì bạn đã đề cập đến mac os x
chỉ để giải trí, nếu bạn đang tìm kiếm thứ gì đó đặc biệt, bạn có thể sử dụng saylệnh của Mac OS X để đọc cho bạn tệp bạn đang xem. chỉ cần nhận logtaillệnh, từ:
http://www.hmug.org/pub/MacOS_X/BSD/Ad dùng / Log / logcheck /
Và sử dụng nó trong một kịch bản như:
#!/bin/bash
file=$1
offset=$(basename "$1")
# while true... let this thing run until it's killed...
while true; do
output=$(/usr/local/bin/logtail $file .${offset}.offset)
if [ ! -z "$output" ]; then
# print the output and say ding
echo "$output" && say ding
# to have the file read aloud to you, uncomment the following:
say "$output"
fi
# recheck every 5 seconds
sleep 5
done
screenhiển thị và cảnh báo (Tôi đoán tôi cũng có thể làm cho nó rung chuông) CHỈ MỘT LẦN. Không phải cho mọi sự kiện mới xảy ra (không phải cho mọi dòng mới có sẵn)
beeplệnh thay vì say.
execlệnh của màn hình để làm điều đó là tốt. Ví dụ trong trang này !:sed -n s/.*Error.*/\007/psẽ gửi chuông mỗi lần "Lỗi" được hiển thị trong cửa sổ đó.
Chỉ để ghi lại, như @Nils đề nghị tôi đang sử dụng sedđể thêm một belldòng vào mỗi dòng.
Các seddòng cung cấp bởi @Gilles
sed -e $'s/$/\a/'
hoạt động trên máy mac của tôi (Tôi đã bật "chuông âm thanh" và "chuông hình ảnh" trong Terminal \ Preferences \ advanced).
$'...'các chuỗi thoát là một điều duy nhất của Bash.
Đối với bất kỳ ai khác tìm thấy trang này, tôi đang sử dụng tcsh và điều này dường như hoạt động:
tail -f changingfile | sed -e 's/.*/& \a/'
Đừng hỏi tôi cú pháp sed có nghĩa là gì ...
Bạn có thể thử konsolecho phép cảnh báo về hoạt động mới (hoặc im lặng) trong bất kỳ tab nào.
konsolesẽ giống như screennó cảnh báo một lần, trong khi tôi cần nhận được thông báo cho mỗi dòng mới.