में तारों, फ़ाइलों और प्रोग्राम आउटपुट को जोड़ना, केस केस, मेरे मामले में, सीएसएस फ़ाइल concatenation, इसे कम करने से पहले है। दो सीएसएस फ़ाइलों concat करने के लिए:बाश
sed 's/foo/bar/g' 3.css | cat 1.css - 2.css > out.css
:
cat 1.css 2.css > out.css
एक ही की स्थिति में कुछ पाठ जोड़ने के लिए, मैं
cat 1.css <<SOMESTUFF 2.css > out.css
This will end in the middle.
SOMESTUFF
एक अन्य कार्यक्रम से STDOUT को जोड़ने के लिए क्या कर सकते हैं
अब तक इतना अच्छा है। लेकिन मैं नियमित रूप से परिस्थितियों में आ जाता हूं, जहां मुझे कई तारों, फ़ाइलों और यहां तक कि प्रोग्राम आउटपुट को एक साथ जोड़ने की आवश्यकता होती है, जैसे कि कॉपीराइट हेडर, sed(1)
द्वारा प्रीप्रोसेस्ड फाइलें और इसी तरह। ऑर्डर चुनने की स्वतंत्रता रखते हुए, मैं जितना संभव हो सके छोटे चरणों और अस्थायी फ़ाइलों में उन्हें एक साथ जोड़ना चाहता हूं।
संक्षेप में, मैं बैश में यथासंभव कम चरणों में यह करने के लिए एक तरह से तलाश कर रहा हूँ: (
command [string|file|output]+ > concatenated
# note the plus ;-) --------^
मूल रूप से, एक cat
कई STDINs को संभालने के लिए पर्याप्त होगा होने, मुझे लगता है,
<(echo "FOO") <(sed ...) <(echo "BAR") cat 1.css -echo1- -sed- 2.css -echo2-
की तरह लेकिन मैं यह देखने के लिए असफल, मैं कैसे उन तक पहुँच सकते हैं)
डी ओह देखें! यह सबसे आसान समाधान है (मेरे मामले में), इसलिए मैं इसे स्वीकार करूंगा। – Boldewyn
बेशक @ बोल्डविन ने '> concatenated.css' या '| जोड़ा होगा। इस तरह की समस्या के लिए काम करने के लिए अंत में संकलक ':' cat file1.css <(echo "FOO") <(कमांड [स्ट्रिंग | फ़ाइल | आउटपुट]) file2.css <(echo "बार")> concatenated ' – hobs