मैं फ़ाइल की कम सामग्री को कैसे सहेज सकता हूं?


91

अगर मैंने एक कमांड के परिणामों को पाइप किया है lessऔर फिर निर्णय लिया है कि मैं सामग्री को एक फ़ाइल में सहेजना चाहता हूं, तो क्या यह संभव है?

मैंने aबफर के अंत में एक निशान स्थापित करने की कोशिश की है , और फिर शीर्ष पर लौटकर |aviपूरी सामग्री भेजने के लिए उपयोग कर रहा है vi, लेकिन यह काम नहीं करता है।


1
यदि आप vi को स्टड से लोड करने का निर्देश देते हैं, तो आपकी मूल तकनीक काम करेगी |avi -
जो शॉ

जवाबों:


102

मेरे सिस्टम पर, man lessकहते हैं

       का नाम
              फ़ाइल में इनपुट सहेजें। यह केवल तभी काम करता है जब इनपुट ए
              पाइप, एक साधारण फ़ाइल नहीं।

मेरे लिये कार्य करता है!


4
किसी तरह, यह मेरे लिए काम नहीं करता है - टाइपिंग 's' विंडो को एक पंक्ति में ले जाती है। मैं एक मैक पर हूँ।
बेन्थ

2
@benroth: आपके पास संभवत: एक lesskeyफाइल है जो सामान्य कमांड को बदलती है। देखेंman lesskey
RedGrittyBrick

8
sमेरे लिए भी काम नहीं करता है, लेकिन -o fileकरता है।
user1338062

1
और क्यों पृथ्वी पर इसका उल्लेख नहीं किया गया है जब मैं इंटरैक्टिव सहायता प्राप्त करने के लिए 'h' टाइप करता हूं? +1 यदि आपने संवादात्मक सहायता पढ़ी है और इसलिए परामर्श करने के लिए नहीं सोचा man less...
पीटर वी। मॉर्क

1
@ कॉमफ्रीक: हाँ यह उबंटू 18.04 में कम 487 में है लेकिन डेबियन 9 / खिंचाव / स्थिर में कम 481 में नहीं
पीटर वी। मॉरच

24

स्वीकृत उत्तर मैक पर काम नहीं करता है - जैसा कि @benroth कहता है, दबाने से sबस एक पंक्ति नीचे जाती है - लेकिन आप एक अलग विधि का उपयोग कर सकते हैं।

इन less --help:

|Xcommand            Pipe file between current pos & mark X to shell command.

तथा

A mark is any upper-case or lower-case letter.
Certain marks are predefined:
     ^  means  beginning of the file
     $  means  end of the file

इसलिए यदि आप बफर के शीर्ष पर जाते हैं ( <) और फिर:

|$cat > /tmp/foo.txt

बफर की सामग्री को बाहर लिखा जाएगा /tmp/foo.txt


यह विधि विशेष रूप से तब उपयोगी हो सकती है जब आप किसी अन्य कमांड के माध्यम से देखे जा रहे वर्तमान बफर को पाइप करना चाहते हैं।
डोरोन बेहार

3

जब आपका lessखोला जाता है, तो आप संपूर्ण आउटपुट को एक फ़ाइल में सहेज सकते हैं। जैसे vim, कम कमांड का समर्थन करता है।

बस कुंजी टाइप करें s, फिर lessआपसे उस फ़ाइल का नाम पूछेगा जहां आप सामग्री को सहेजना चाहते हैं, बस फ़ाइल का नाम लिखें और फिर टाइप करें Enter

चियर्स


0

>ऑपरेटर का उपयोग करें । उदाहरण के लिए less foo.bar > output.txt:।


धन्यवाद @Dror, लेकिन मैं कम आवेदन में पहले से ही कर रहा हूँ, नहीं बैश में किसी भी अधिक का संकेत
जोनाथन दिवस

क्यू / ए के लिए एक मूल्यवान योगदान। पूरी तरह से अलग प्रश्न शुरू करने के बजाय, कम व्यूअर के माध्यम से कई फ़ाइलों को स्क्रिप्ट करने के लिए एक विधि की आवश्यकता वाले लोगों को बहुत फायदा हो सकता है। मुझे काम के घंटे (बहुत खोज के बाद) बचाया। धन्यवाद!
एलडी जेम्स

0

नहीं, अगर आपने कम शुरू किया है, लेकिन अगर आप जानते हैं कि यू पहले इसे कम और एक फ़ाइल पर भेजना चाहते हैं तो आप टी कमांड का उपयोग कर सकते हैं

command | tee out_file | less

धन्यवाद मार्क, लेकिन मैं विशेष रूप से देख रहा हूं कि अगर मैं पहले से ही कम कर रहा हूं तो इसे कैसे करें
जोनाथन डे

0

मेरा जवाब एक बहुत देर से आता है मुझे विश्वास है। लेकिन अभी संदर्भ के लिए, ऊपर benroth की चिंता के जवाब में: वहाँ हमेशा विकल्प "-l" का उपयोग करके एक लॉग फ़ाइल के लिए पेजर की सामग्री को डंप करने के लिए विकल्प नहीं है OSX उपयोगकर्ताओं के लिए (पढ़ने के डैश ELL बृहदान्त्र प्रॉम्प्ट पर)।

पेजर एक लॉग फ़ाइल के लिए पूछेगा। इसे कुंजी और दबाएं [CR]

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