यदि आप यूनिक्स जैसी प्रणाली का उपयोग कर रहे हैं, तो tee उपयोगिता का उपयोग करें।
$ perl -le 'print "Hello, world"' | tee /tmp/foo /tmp/bar
Hello, world
$ cat /tmp/foo /tmp/bar
Hello, world
Hello, world
अपने कार्यक्रम के भीतर से इस दोहराव सेट करने के लिए, एक बाहरी टी प्रक्रिया करने के लिए अपने STDOUT
से एक पाइप की स्थापना की। "|-"
से open
पास करना आसान बनाता है।
#! /usr/bin/env perl
use strict;
use warnings;
my @copies = qw(/tmp/foo /tmp/bar);
open STDOUT, "|-", "tee", @copies or die "$0: tee failed: $!";
print "Hello, world!\n";
close STDOUT or warn "$0: close: $!";
डेमो:
$ ./stdout-copies-demo
Hello, world!
$ cat /tmp/foo /tmp/bar
Hello, world!
Hello, world!
स्रोत
2012-05-09 16:03:26
ओपी ने 'STDOUT' (... और किसके साथ? 0_o) को बदलने के लिए कहा था। ओपी चाहता था कि "STDOUT' स्ट्रीम को दो फाइलों पर रीडायरेक्ट करें"। –
'$ tee'' चुनकर, '$ tee 'डिफ़ॉल्ट हैंडल बन जाता है। TIMTOWTDI, चाहे आप इसे पसंद करते हैं या नहीं। –
मैं वास्तव में वास्तव में अंधा हूं। मेरी मजबूती झूठी टिप्पणियों को हटा रहा है! – ikegami