मेरे पास कुछ संख्याओं को आउटपुट करने वाला एक सर्वर है, मैं उन्हें समाज के साथ पढ़ रहा हूं, फिर sed का उपयोग करके, मैं उन संख्याओं को कुछ गणित समीकरणों में बदल देता हूं, मैं उन्हें bc के साथ चलाता हूं, फिर मुझे उन्हें xargs में पाइप करने की आवश्यकता है।
socat -u udp-recv:10552,reuseaddr,crnl - | sed -u s/.*/1+1/ | bc | xargs echo
उपरोक्त पाइप कोई आउटपुट नहीं देता है। मेरा पाइप ठीक इसी तरह है सिवाय बयान के, और यह भी कोई उत्पादन नहीं करता है।
yes | gsed -u s/.*/1+1/ | bc | xargs echo
एक पाइप जैसे कि ऊपर, हालांकि, उम्मीद के मुताबिक कंसोल को 2s का एक गुच्छा प्रिंट करता है। हालांकि दोनों पाइप एक जैसे होने चाहिए, क्योंकि सेड लाइन सब कुछ एक ही वाक्यांश में बदल जाती है, चाहे कुछ भी हो। सोसाइटी के साथ पाइप कोई आउटपुट क्यों नहीं देता है? मेरा एकमात्र अनुमान है कि सर्वर केवल एक बार एक सेकंड में नंबर भेजता है, और किसी प्रकार की बफर समस्या है, लेकिन stdbuf -o0 का उपयोग करने से कुछ भी नहीं बदलता है।
xargs
अधिक इनपुट की प्रतीक्षा कर रहा है। मुझे लगता है किxargs -L 1
शायद इससे बचने के लिए पर्याप्त है।