2008-12-01 7 views
7

तो मेरा सवाल यह है कि यदि मैं किसी भी तरह से अपने प्रोग्राम में डेटा भेज सकता हूं और फिर एक ही डेटा भेज सकता हूं और इसके परिणामस्वरूप एक अस्थायी फ़ाइल (मेरे मामले ouputdata.txt) में बिना किसी प्रोग्राम को भेज सकता है। अधिमानतः लिनक्स पाइप/बैश का उपयोग कर।मैं पाइप पर कैसे जुड़ूं?

मैं वर्तमान में निम्न कार्य करें:

बिल्ली inputdata.txt | ./MyProg> outputdata.txt

cat inputdata.txt outputdata.txt | ./MyProg2

उत्तर

11

विकल्प 1 - इनपुट से विलय आउटपुट लिखने के लिए MyProg को ठीक करें और यह स्वयं का आउटपुट लिखें। फिर आप यह कर सकते हैं।

./MyProg <inputdata.txt | ./MyProg2 

विकल्प 2 - आप MyProg को ठीक नहीं कर सकते, तो दोनों इनपुट और आउटपुट लिखने के लिए, आप मर्ज की जरूरत है।

(Prog1; Prog2; Prog3; ... ) | ProgN 

बैश में कम से कम काम करता है यही कारण है कि:

./MyProg <inputdata.txt | cat inputdata.txt - | ./MyProg2 
+0

क्षमा करें, लेकिन यह समाधान बदसूरत है। बस MyProg को ठीक करें और उन्हें पाइप के साथ एक साथ श्रृंखलाबद्ध करें। –

+1

ए) यह बिल्कुल बदसूरत नहीं है, बी) पहली पसंद बिल्कुल ठीक है। – hop

21

यहाँ एक और तरीका है, जो एक साथ दो कार्यक्रमों के उत्पादन में डाल करने के लिए बढ़ाया जा सकता है।

+0

चलो एक अच्छा भोजन पाने के लिए इसे एक साथ मिलाएं: (प्रोग 1 और प्रोग 2 और प्रोग 3 और ...) | प्रोगॉन: पी –

+0

एलओएल, हाँ, जो दिलचस्प परिणाम देगा :- डी – derobert

संबंधित मुद्दे