Câu trả lời:
Một ý tưởng di chuyển là dẫn đầu ra của tail
thông qua sed
và 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 tail
trong 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.
sed
regexpt 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 say
lệnh của Mac OS X để đọc cho bạn tệp bạn đang xem. chỉ cần nhận logtail
lệ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
screen
hiể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)
beep
lệnh thay vì say
.
exec
lệ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/p
sẽ 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 bell
dòng vào mỗi dòng.
Các sed
dò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ử konsole
cho phép cảnh báo về hoạt động mới (hoặc im lặng) trong bất kỳ tab nào.
konsole
sẽ giống như screen
nó 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.