Vi के साथ फ़ाइल को संपादित करने के लिए एक पाइप का उपयोग कैसे करें


15

कहते हैं कि मेरे पास file.txt नामक एक फाइल है। इसमें एक फ़ाइल का नाम है जिसे मैं vi के साथ संपादित करना चाहता हूं। मैं कुछ ऐसा करना चाहता हूं ताकि मैं फ़ाइल को संपादित कर सकूं:

cat file.txt | vi

हालाँकि, यह काम नहीं करता है। यह कैसे किया जा सकता है?

चीजों को स्पष्ट करने के लिए:

यहाँ file.txt की सामग्री दी गई है:

textfile

इसलिए मैं किसी तरह file.txt की सामग्री को vi पर भेजना चाहता हूं ताकि टाइपिंग करते समय वही बात हो vi textfile

File.txt का कंटेंट बदल सकता है। मैं चाहता हूं कि जो भी फाइल file.txt में सूचीबद्ध है उसे संपादित करना vi।


मुझे नहीं लगता कि vi = विम। मैं नहीं जानता कि इससे इस सवाल पर फर्क पड़ता है, लेकिन आपका टैग भ्रामक है।
soandos

मुझे लगता है कि आपके द्वारा पूछे जाने वाले प्रश्न के लिए और भी कुछ हो सकता है। मनमाने ढंग से नामित फ़ाइल खोलना vi का आधार उपयोग है। अर्थात्: vi file.txt। क्या कुछ और उन्नत है जिसे आप करने की कोशिश कर रहे हैं?
camster342

vi OSX और अन्य आधुनिक लिनक्स सिस्टम पर vim शुरू करता है।
tony_sid

मैं वास्तव में एक फाइल को संपादित करने की कोशिश कर रहा हूं जिसका नाम OSX क्लिपबोर्ड में संग्रहीत है। टाइपिंग pbpaste फ़ाइल नाम प्रदर्शित करेगा। मैं वास्तव में इसे टाइप किए बिना इस फाइल को संपादित करने की कोशिश कर रहा हूं, लेकिन क्लिपबोर्ड में जो कुछ भी संग्रहीत है उसका उपयोग करके। लिनक्स में pbpaste नहीं है, लेकिन यह अनिवार्य रूप से बिल्ली के फ़ाइलनाम से आउटपुट प्राप्त करने के समान है।
tony_sid

स्थापित करें xclipऔर फिर xclip -ox11 में शेल पर क्लिपबोर्ड तक पहुंचने के लिए उपयोग करें। बस अगर आप को बदलने की जरूरत है pbpaste...
akira

जवाबों:


9

आप यह कोशिश कर सकते हैं:

% vi `cat file.txt`

या, बिल्ली के उपयोग से बचने के लिए:

% vi `< file.txt`

आप vi (m) को मनमानी चीजों का एक समूह बता रहे हैं। यदि आप चाहते हैं कि vi (m) कुछ ऐसा करें 'अरे, तो उस फ़ाइल को खोलें' आपको उसे वही कमांड्स खिलाने होंगे जो आप vi (m) में उपयोग करेंगे, उदा। की तरह कुछ :e foo.txt। लेकिन मैंने जो प्रस्तावित किया है, उससे अधिक जटिल है।


उन लोगों ने काम नहीं किया।
tony_sid

4
वे बैकटिक्स हैं, आपने उन्हें सही तरीके से टाइप किया है? वे एक उपधारा खोलते हैं, 'बिल्ली' को निष्पादित करते हैं ... अगर वह काम नहीं करता है, तो कोशिश करें vi $(cat file.txt)
अकीरा

ओह ठीक है, यह अब काम करता है। धन्यवाद।
tony_sid

23

कम से कम विम के लिए (vi के बारे में निश्चित नहीं), आप कर सकते हैं

cat file.txt | vim -

'-' स्टिम से पढ़ने के लिए विम बताता है।


1
क्षमा करें, लेकिन यह सही उत्तर नहीं है। इससे सामग्री 'टेक्स्टफाइल' के साथ खुल जाती है। प्रश्नकर्ता खुद को 'टेक्स्टफाइल' खोलना चाहता है। मैं नीचे जाऊंगा, लेकिन दुख की बात है कि मेरे पास यहां पर्याप्त प्रतिष्ठा नहीं है।
स्क्रबो

scubbo सही है! स्टड से सिर्फ कुछ पाइप करने के लिए मेरा जवाब अधिक उपयोगी है।
जेफ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.