मैं एक निश्चित स्तंभ आकार में पाठ कैसे लपेट सकता हूं?


141

मुझे पता है कि मैं cat test.txt | pr -w 8080 वर्णों तक की रेखाओं को लपेटने के लिए कुछ का उपयोग कर सकता हूं , लेकिन यह मुद्रित लाइनों के ऊपर और नीचे बहुत सी जगह डालता है और यह कुछ प्रणालियों पर सही काम नहीं करता है

एक निश्चित चौड़ाई में लपेटी जाने वाली लंबी लाइनों के साथ पाठ फ़ाइल को मजबूर करने का सबसे अच्छा तरीका क्या है?

बोनस अंक यदि आप इसे शब्दों को तोड़ने से रख सकते हैं।

जवाबों:


176

आप क्या देख रहे हैं

fold -w 80 -s text.txt
  • -W पाठ की चौड़ाई बताता है, जहां 80 मानक है।
  • -s रिक्त स्थान पर तोड़ने के लिए कहता है, और शब्दों में नहीं।

यह मानक तरीका है, लेकिन अन्य प्रणालियां हैं, जिन्हें "-w" के बजाय "-c" की आवश्यकता है।


ओएस एक्स पर भी काम करता है, लेकिन फ़ाइल नाम को आर्गन्स के बाद होना चाहिए। धन्यवाद!
rdrey

2
साइड नोट पर, केवल-पाठ के लिए ई-मेल को अच्छी तरह से प्रारूपित करने के लिए, मैं उपयोग करता हूं:fold -s -w 80 email.txt | sed 's/^.*$/> &/'
Marcello Romani

2
@MarcelloRomani, आपको 78 वर्णों की चौड़ाई का उपयोग नहीं करना चाहिए, क्योंकि आप दो वर्णों का उपयोग कर रहे हैं?
नानी

1
हम्म ... मुझे ऐसा लगता है। उस ओर इशारा करने के लिए धन्यवाद :)
मार्सेलो रोमानी

2
ध्यान दें कि foldयूरल्स टूट जाता है, जबकि fmtऐसा नहीं है।
स्किप्पी ले ग्रैंड गौरू

51

के अलावा fold, पर एक नज़र रखना fmtfmtटेक्स्ट को अच्छा दिखाने के लिए समझदारी से लाइन ब्रेक चुनने की कोशिश करता है। यह लंबे शब्दों को नहीं तोड़ता है, बल्कि यह केवल रिक्त स्थान द्वारा ही लपेटता है। यह आसन्न लाइनों में भी शामिल होगा, जो गद्य के लिए अच्छा है लेकिन लॉग फ़ाइलों या अन्य स्वरूपित पाठ के लिए बुरा है।


3
मैं विशेष रूप से
ftt

15

1) शब्द को तोड़ने के साथ निश्चित लाइन चौड़ाई का आश्वासन दिया:

fold -w 80 <text.txt

2) असाधारण शब्द तोड़ने के साथ निश्चित लाइन की चौड़ाई का आश्वासन दिया (एक शब्द केवल तभी टूट जाता है जब वह एक पंक्ति में फिट होने के लिए बहुत बड़ा हो):

fold -sw 80 <text.txt

3) किसी भी शब्द को तोड़ने के बिना निश्चित लाइन की चौड़ाई का वादा करना (यदि शब्द एक पंक्ति में फिट होने के लिए बहुत बड़ा है, तो यह अभी भी वैसे ही बचा हुआ है, इसलिए अंत में कुछ लाइनें आपके आकार से बड़ी हो सकती हैं):

fmt -w 80 <text.txt

अधूरा जवाब। अधिकांश प्रणालियों पर उपलब्ध है। अच्छा है।
Merc

11

एक और (कम ज्ञात) उपकरण जो आप चाहते हैं वह wrapGNU Talkfilters से है :

wrap -w 80 < textfile

भी (विषय से दूर):

लेकिन यह मुद्रित लाइनों के ऊपर और नीचे बहुत सी जगह डालता है

हेडर / ट्रेलरों को छोड़ते -tसमय जोड़ें pr:

   -t, --omit-header
          omit page headers and trailers

5

और अधिक स्वरूपण विकल्पों के लिए, यहां देखें par- http://www.nicemice.net/par/


2
वर्तमान में वेब साइट नीचे है, इंटरनेट आर्काइव और Google का कैश है लेकिन फिर भी यह दिखाता है कि सिर्फ लिंक से अधिक पोस्ट करना महत्वपूर्ण क्यों है, आप कम से कम आधिकारिक प्रलेखन से उदाहरण पोस्ट कर सकते हैं।
phk

-1
fold -w 100 -s text.txt

मेरे लिए काम किया क्योंकि मुझे 100 वर्णों तक हर पंक्ति को विभाजित करने की आवश्यकता है


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