क्या पश्चगामी पुनर्निर्देशन एक पाइप के समान है?


11

यदि आप टाइप करते हैं तो लिनक्स में

sort < txtfile

जैसा है वैसा ही है

cat txtfile | sort

जवाबों:


17

आपके शीर्षक प्रश्न के लिए: नहीं stdinफ़ाइल सामग्री ( इनपुट पुनर्निर्देशन ) से प्राप्त करना एक प्रोग्राम के आउटपुट को दूसरे प्रोग्राम के इनपुट को पाइप करने के समान नहीं है।

लेकिन, जैसा कि आपका catवास्तव में एक फ़ाइल की सामग्री को प्रिंट करता है, परिणाम प्रभावी रूप से उस उदाहरण में समान है।


लेकिन यहां तक ​​कि सिर्फ निम्नलिखित बहुत अलग परिणाम देते हैं:

$ cat * | sort
$ sort < *

यदि एक से अधिक मिलान वाली फ़ाइल है, तो बाद वाला उत्पादन करेगा

-bash: *: ambiguous redirect

चूँकि यह पूर्व की तरह लचीला नहीं है, जो सभी मिलान फ़ाइलों को पूरा करेगा, और उन्हें इनपुट के रूप में पाइप करेगा sort


3
किस बारे में ... sort *? बिल्ली का कोई बेकार उपयोग, अप्रत्यक्ष का कोई बेकार उपयोग, टाइप करने के लिए सबसे छोटा, सबसे आसान सोचने के लिए, और मेरा मानना ​​है कि जीएनयू सॉर्ट आपको बहुत बड़ी फ़ाइलों के लिए स्केलेबिलिटी ऑप्टिमाइज़ेशन का इलाज करेगा (इतना सुनिश्चित नहीं है कि - आधा वहाँ कुछ याद रखना
sehe

1
@ शायद। मैंने सिर्फ उदाहरण का इस्तेमाल किया है कि दोनों अलग-अलग हैं। यह सॉर्ट के कुशल उपयोग के बारे में नहीं है। सॉर्ट अधिक लचीला थन है जो हालांकि, निश्चित है।
डैनियल बेक

@DanielBeck, दक्षता के बारे में, की sort < txtfileतुलना में अधिक कुशल है cat txtfile | sort?
पचेरियर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.