2011-02-14 18 views
32

का उपयोग कर फ़ाइल में टेक्स्ट की कई पंक्तियों को कैसे जोड़ना है, मैं एक फ़ाइल में कई लाइनें (5 या अधिक) लिखना चाहता हूं, जिसे मैं स्क्रिप्ट में बनाने जा रहा हूं। मैं इसे echo >> filename द्वारा कर सकता हूं। लेकिन मैं जानना चाहता हूं कि ऐसा करने का सबसे अच्छा तरीका क्या है?शेल स्क्रिप्ट

उत्तर

77

आप यहां दस्तावेज़ का उपयोग कर सकते हैं:

cat <<EOF >> outputfile 
some lines 
of text 
EOF 
+0

+1: लेकिन केवल स्क्रिप्ट में जेनरेट नहीं किए गए निश्चित टेक्स्ट के साथ काम करता है। कोई वर्र्स प्रतिस्थापन आदि सही नहीं है? –

+13

@ वेलेंटीन: यह वैरिएबल, अंकगणित और कमांड प्रतिस्थापन करेगा जब तक कि आप इसे इस तरह के शुरुआती डिलीमीटर को उद्धृत करके दबाएं, उदाहरण के लिए: '' EOF''। सब्सेल बनाने से बचने के लिए –

4

मैं आमतौर पर तथाकथित "यहाँ-दस्तावेज़" का उपयोग डेनिस का सुझाव दिया। एक विकल्प है:

(echo first line; echo second line) >> outputfile 

यह बैश में तुलना प्रदर्शन करना चाहिए था के रूप में (....) एक subshell शुरू होता है, लेकिन गूंज 'inlined' है - बैश नहीं चलता है/bin/गूंज, लेकिन गूंज करता है अपने आप।

यह भी तेज़ हो सकता है क्योंकि इसमें कोई निष्पादन() नहीं है।

यदि आप टेक्स्ट में कहीं और कमांड से आउटपुट का उपयोग करना चाहते हैं तो यह शैली और भी उपयोगी है।

+7

, आप समूह के लिए ब्रेसिज़ का उपयोग कर सकते हैं। बस अर्धविराम के साथ कमांड सूची को समाप्त करना याद रखें और रिक्त स्थान के साथ ब्रेसिज़ को अलग करें - '{पहले गूंजें; दूसरी गूंज; } >> outputfile' –

+0

मुझे यह नहीं पता था। धन्यवाद! –

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