2008-09-16 22 views

Trả lời

23

Lệnh unix tee thực hiện việc này.

man tee 
+0

Nếu điều đó tùy thuộc vào tôi, tôi sẽ "chấp nhận" câu trả lời này –

2

Sử dụng Procmail. Procmail là bạn của bạn. Procmail được thực hiện cho loại điều này.

10
cat > FILENAME 
5

Tiêu chuẩn unix cụ tee có thể làm điều này. Nó sao chép đầu vào vào đầu ra, trong khi cũng ghi nó vào một tập tin.

8

Bạn không đơn độc trong cần một cái gì đó tương tự .. trong thực tế, có người muốn tôi thập kỷ trước và phát triển tee :-)

Tất nhiên, bạn có thể chuyển hướng stdout trực tiếp vào một tập tin trong bất kỳ vỏ sử dụng> ký tự:

echo "hello, world!" > the-file.txt 
0

Huh? Tôi đoán, tôi không nhận được câu hỏi?

Có thể bạn không chỉ kết thúc đường ống của bạn thành một >> ~file

Ví dụ

echo "Foobar" >> /home/mo/dumpfile 

sẽ nối Foobar đến dumpfile (và tạo dumpfile nếu cần). Không cần cho một kịch bản shell ... Đó có phải là những gì bạn đang tìm kiếm không?

1

Nếu bạn muốn phân tích nó trong kịch bản:

while /bin/true; do 
    read LINE 
    echo $LINE > $OUTPUT 
done 

Nhưng bạn chỉ có thể sử dụng con mèo. Nếu con mèo nhận được một cái gì đó trên stdin, nó sẽ echo nó đến stdout, vì vậy bạn sẽ phải ống nó vào cat> $ OUTPUT. Chúng sẽ làm như vậy. Các công trình thứ hai cho dữ liệu nhị phân cũng có.

0

nếu bạn không quan tâm đến xuất ra kết quả

cat - > filename 

hoặc

cat > filename 
0

Nếu bạn muốn có một shell script, hãy thử này:

#!/bin/sh 
exec cat >/path/to/file 
1

Nếu exim hay sendmail là những gì viết vào đường ống, sau đó procmail là một câu trả lời tốt bởi vì nó sẽ cung cấp cho bạn tập tin khóa/serialization và bạn c đặt tất cả vào cùng một tệp.

Nếu bạn chỉ muốn viết vào một tập tin, sau đó - tee> /tmp/log.$$ hoặc - mèo> /tmp/log.$$ có thể là đủ tốt.

0

< < lệnh >> | tee < file >>

Điều này cũng sẽ hiển thị đầu ra.

Các vấn đề liên quan