क्या sed अपने आउटपुट को फ़ाइल में सहेज सकता है?


33

> कर सकते है।

echo "text" > file

tee कर सकते है।

echo "test" | tee file 

sedउपरोक्त में से किसी का उपयोग किए बिना कर सकते हैं? क्या sedकिसी फाइल का कमांड का आउटपुट सेव करना संभव है >या बिना उपयोग के tee?


कृपया यहां प्रश्न पोस्ट करने से पहले स्वयं उत्तर खोजने का प्रयास करें। सबसे पहली बात जो हम अपने उपयोगकर्ताओं से पूछते हैं वह पोस्ट करने से पहले खोज और शोध करना है । आपको बस इतना करना चाहिए था sed '' file > newfileऔर आपने देखा होगा कि >वास्तव में sedकिसी भी अन्य प्रोग्राम की तरह ही इसका उपयोग किया जा सकता है ।
terdon

1
वह अभी भी >ऑपरेटर का उपयोग कर रहा है। अगर कोई सीड कमांड का उपयोग किया जाता है, तो मुझे इसमें रुचि थी। लेकिन अगर यह इतना बुरा है तो मैं इस सवाल को हटा दूंगा।
फोलेट

ठीक है। ठीक है, यह एक बहुत अलग सवाल है। चूंकि आपने sed -iउत्तर स्वीकार कर लिया है , मैं आपके प्रश्न को संपादित करूँगा और स्पष्ट करूँगा कि आप क्या कर रहे हैं।
terdon

मैं "स्वीकार sed के रूप में डेटा में रीडायरेक्ट के लिए नहीं होती teeऔर >मतलब (कर रहे हैं)"।
फोलेट

जवाबों:


49

टी और> का उपयोग डेटा पुनर्निर्देशन के लिए किया जा सकता है क्योंकि इनका उपयोग लिनक्स में डेटा पुनर्निर्देशन के लिए किया जाना है।

दूसरी ओर sed एक धारा संपादक है। टी के रूप में डेटा पुनर्निर्देशन के लिए sed का मतलब नहीं है और> का मतलब है। हालाँकि आप ऐसा करने के लिए आदेशों के संयोजन का उपयोग कर सकते हैं।

टी या> सेड के साथ प्रयोग करें

sed 's/Hello/Hi/g' file-name | tee file

या

sed 's/Hello/Hi/g' file-name > file

-i विकल्प के साथ sed का उपयोग करें

sed -i 's/Hello/Hi/g' file-name

पिछले एक पुनर्निर्देशित नहीं करता है, इसके बजाय यह फ़ाइल में ही परिवर्तन करेगा।


2
धन्यवाद। आप मेरा सवाल समझ गए। तो उत्तर नहीं है। मैंने सोचा कि sedयह अपने आप में है शायद यह कर सकता है, क्योंकि यह -i.bakविकल्प के साथ बैकअप फाइल बनाने में भी सक्षम है ।
फोलेट

2
सही बात। Also -i.bak एक निश्चित विकल्प नहीं है, आप किसी भी एक्सटेंशन का उपयोग कर सकते हैं, जिसे आप अपनी बैकअप फ़ाइल के लिए करना चाहते हैं। पूर्व के लिए। -आई.लॉग भी चलेगा। :)
एकिडेमोन

मैं सिर्फ यह जोड़ना चाहता हूं कि वास्तव echo "test" | dd of=file status=noneमें अस्पष्ट आउटपुट पुनर्निर्देशन का उपयोग किए बिना एक प्रतिध्वनि के आउटपुट को दबाने के लिए देख रहा था 2> /dev/null, लेकिन इसके बजाय sed की सीमाओं के लिए कहा गया। मैं वास्तव में sed की क्षमताओं से प्रभावित था क्योंकि यह फ़ाइल में लाइनों को जोड़ने में सक्षम है, मुझे यह आभास देता है कि sed कुछ भी कर सकता है और अधिक कर सकता है।
फोलेट

11

sedहै wआदेश है कि तुम क्या आवश्यकता होती है हो सकता है:

w फाइल का नाम

फ़ाइल नाम के लिए वर्तमान पैटर्न स्थान लिखें।

sed 'w file'अपने दम पर जैसा प्रभाव होगा वैसा ही होगा tee file। यदि अन्य सीड कमांड हैं, तो wआखिरी डालें :

sed 's/This/That/;w file'

हालाँकि, यह -n/--quiet/--silentविकल्प से प्रभावित नहीं होगा । यह केवल उस सामग्री को दबाता है जो अन्यथा मानक आउटपुट में चली जाती है।


0

Akidaemon के रूप में सही ढंग से बताया गया है कि हम फाइल में सेड आउटपुट कैसे सेव कर सकते हैं। मैं यह जोड़ना चाहूंगा कि यदि हम किसी फ़ाइल पर कुछ ऑपरेशन कर रहे हैं अर्थात प्रतिस्थापित करें और आउटपुट को उसी फ़ाइल में सहेजना चाहेंगे। एक -iझंडा होता है, sedजो इनलेट संपादन को संभव बनाता है। हालाँकि यह प्रक्रिया में एक बैकअप फ़ाइल बनाता है। अगर इसकी जरूरत नहीं है, तो बस खाली फ़ाइलनाम को -iध्वजांकित करने से किया जा सकता है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.