मैं एक फ़ाइल से कम से सभी लाइनें कैसे लिखूं?


76

मैंने एक कमांड को पाइप किया है less, और अब मैं कमांड के आउटपुट को फाइल में सेव करना चाहता हूं। मैं उसको कैसे करू?

इस मामले में, मैं उपयोग नहीं करना चाहता tee, मैं कम से सीधे एक समाधान चाहता हूं, ताकि मुझे लंबे समय से चलने वाली कमांड को फिर से चलाना न पड़े अगर मैं उपयोग करना भूल गया tee

यह प्रश्न इस एक के समान है, एकमात्र अंतर यह है कि मैं सभी पंक्तियों को सहेजना चाहता हूं, न कि एक उपसमुच्चय: किसी फ़ाइल को कम से लाइनें लिखें

जवाबों:


106

से less, टाइप करें sतो, फ़ाइल का नाम आप के लिए बचाने के लिए करना चाहते हैं तो Enter
से manपेज, के तहत COMMANDS:

s filename
      Save the input to a file.  This only works if the input is a pipe, not an ordinary file.

manपृष्ठ यह भी बताता है कि, आपके विशेष इंस्टॉलेशन के आधार पर, sकमांड उपलब्ध नहीं हो सकती है। उस स्थिति में, आप पंक्ति 1 पर जा सकते हैं:

g or < or ESC-<
      Go to line N in the file, default 1 (beginning of file).

और इसके catसाथ पूरी सामग्री को पाइप करें :

| <m> shell-command
      <m> represents any mark letter. Pipes a section of the input file to the
      given shell command. The section of the file to be piped is between the
      first line on the current screen and the position marked by the letter. 
      <m> may also be ^ or $ to indicate beginning or end of file respectively.

तो या तो:

g|$cat > filename

या:

<|$cat > filename

यानी प्रकार ( gया जी या उससे कम ) ( पाइप फिर डॉलर ) और फिर । यह काम करना चाहिए चाहे इनपुट एक पाइप हो या एक साधारण फाइल।<| $cat > filenameEnter


0

इसके बिना करने का एक तरीका teeइस प्रकार है। यदि यह पहले से ही मौजूद है तो
less /path/to/input > /path/to/output
ऊपर लिख दिया जाएगा /path/to/output

ऐसा ही करने के लिए, लेकिन /path/to/outputइस प्रकार है।
less /path/to/input >> /path/to/output

पाठ lessको खोलने के बाद उसे खोलने के लिए, आप फ़ाइल सहेजें सुविधा का उपयोग कर सकते हैं।
जब में less, प्रेस s। फिर, फ़ाइल नाम टाइप करें।
यदि आपने एक पाइप का उपयोग किया है, तो फ़ाइल स्वचालित रूप से वर्किंग डायरेक्टरी को लिखी जाएगी।
यदि आपने पाइप का उपयोग नहीं किया है, तो आप पाठ के साथ एक फ़ाइल खोलेंगे (जिसके लिए आप बचा सकते हैं)।
मुझे विश्वास है कि फ़ाइल को खोल दिया जाएगा vim


4
मैं एक lessबार मैं पहले से ही खोला है से एक समाधान चाहते हैं less
फ्लिम्स

समझा। गलतफहमी के लिए खेद है। मैंने अपना उत्तर अपडेट कर दिया है।
नेकसीवार्ट

-2

आप कम का उपयोग नहीं करते हैं, आप टी का उपयोग करते हैं और फिर कम करने के लिए पाइप टी का उपयोग करते हैं।

./program | tee program.out | less


5
सवाल में, मैंने विशेष रूप से एक समाधान के लिए कहा जो बिना teeएक बार काम किए lessपहले ही खुल गया था।
फ्लिम्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.