2009-10-23 8 views
26

* निक्स में, मैं किसी फ़ाइल को बिना किसी लाइन-रैपिंग वाली फ़ाइल (बिल्ली) कैसे प्रदर्शित करूं: लंबी लाइनों को काटा जाना चाहिए ताकि वे स्क्रीन की चौड़ाई में फिट हो जाएं।कोई फ़ाइल रैप के साथ बिल्ली फ़ाइल

उत्तर

19

ध्यान दें कि cut एक तर्क के रूप में एक फ़ाइल नाम स्वीकार करता है।

यह मेरे लिए काम करने के लिए लगता है:

watch 'bash -c "cut -c -$(($COLUMNS-10)) file"' 

जब मैं अपने टर्मिनल आकार दिया, काट-छांट मैच के लिए अद्यतन किया गया था:

watch 'bash -c "cut -c -$COLUMNS file"' 

परीक्षण के लिए, मैं एक सही मार्जिन गयी।

+0

का उपयोग करते हुए' कम 'चल रहा है, जबकि आप रैपिंग टॉगल कर सकते हैं जब मैं आपकी स्क्रिप्ट' घड़ी// colscript' चलाता हूं, तो मुझे 80 प्रदर्शित दिखाई देता है। जब मैं खिड़की के किनारे खींचकर चौड़ाई बदलता हूं (मैं पुटी का उपयोग कर रहा हूं) तो मिलान करने के लिए संख्या में परिवर्तन होता है। क्या देखती है? –

+0

मुझे कुछ भी नहीं दिखाई देता है, लेकिन मुझे पता चला कि क्यों: विभिन्न बैश संस्करण। घड़ी ./colscript बैश 4.0 (मेरा कंप्यूटर) पर काम करता है, लेकिन बैश 3.0 (रिमोट कंप्यूटर) पर नहीं। ./colscript दो संस्करणों में से किसी एक पर काम नहीं करता है। – Alexandru

+0

'echo $ BASH_VERSION' मुझे" 3.2.48 (1) -release "देता है" कमांड लाइन से '।/Colscript' चलाने का कारण रिक्त रेखा का प्रतीक है कि '$ COLUMNS' केवल इंटरैक्टिव शैल के लिए आबादी है। आप '।/Colscript' की पहली पंक्ति के अंत में' -i' को जोड़ने का प्रयास कर सकते हैं, इसलिए आपके पास '#!/Bin/bash -i' –

34

आप fmt की तलाश में किया जा सकता है:

fmt file 

यह सुंदर आक्रामक तरीके से अपने पाठ reformats, तो यह आप क्या चाहते हैं की तुलना में अधिक कर सकते हैं।

वैकल्पिक रूप से, cut आदेश एक विशिष्ट स्तंभ चौड़ाई के लिए पाठ कटौती कर सकते हैं, सही मार्जिन से परे पाठ को त्यागकर:

cat file | cut -c1-80 

एक और आसान विकल्प less -S आदेश, जिसके साथ एक पूर्ण स्क्रीन विंडो में एक फ़ाइल प्रदर्शित करता है बायीं/दायीं लंबी लाइनों के लिए स्क्रॉल:

less -S file 
+0

वास्तव में, यह एक से अधिक मैं चाहता हूँ करता है: यह लाइनों concatenates

एक काम कर समाधान expand के माध्यम से स्थान में टैब कन्वर्ट और फिर cut उत्पादन के लिए है। – Alexandru

+0

दरअसल, मैं "बिल्ली फ़ाइल" घड़ी का उपयोग कर फ़ाइल की सामग्री देख रहा हूं इसलिए मैं कम उपयोग नहीं कर सकता। बिल्ली फ़ाइल | कट-सी 1-80 ने आंशिक रूप से चाल की। स्क्रीन आकार में कट समायोजित करने का कोई तरीका? – Alexandru

+2

आपके पास पर्यावरण परिवर्तनीय '$ COLUMNS' परिभाषित हो सकता है: 'cut -c1- $ COLUMNS फ़ाइल' – mob

5

के रूप में दूसरों के द्वारा कहा गया है, इस सवाल का जवाब cut -c ... है, लेकिन कुछ इसे करने के लिए गतिशील जोड़ने के लिए, मैं इस पसंद करते हैं:

cat file.txt |cut -c -$(tput cols)

2

भी कम समय में लंबी लाइन-चादर टॉगल करने के लिए। लपेटना डिफ़ॉल्ट है।

- `less file` 
- in file type `"-S"` to toggle to truncate on line width 
- to toggle back `"-S"` again. 
+0

है जिसे आप' -S' के साथ 'कम' के साथ एक विकल्प के रूप में भी कॉल कर सकते हैं : 'कम-एस फ़ाइल' या इसे अपने पर्यावरण में शामिल करें: 'निर्यात कम = "- एस" '(साथ ही अन्य विकल्प)। किसी भी मामले में, यदि आप चाहें तो आप अभी भी टॉगल का उपयोग कर सकते हैं। –

1

cut के उपयोग खाता है जो टैब एकल वर्ण \t माना जाता है पर ध्यान नहीं देता, लेकिन वे 8 खाली रिक्त स्थान के रूप में मुद्रित कर रहे हैं। इस प्रकार टैब के साथ एक फ़ाइल अलग कथित कॉलम पर कटौती की जाएगी।

less -S टैब की उपस्थिति में भी टेक्स्ट को अच्छी तरह से छंटनी करता है, लेकिन AFAIK इसका उपयोग "कटा हुआ" फ़ाइल को गैर-अंतःक्रियात्मक रूप से मुद्रित करने के लिए नहीं किया जा सकता है। expand < file | cut -c -$(tput cols)

+0

'विस्तार' एक बड़ी मदद है; धन्यवाद, मैं सिर्फ इस मुद्दे (टैब के साथ) के साथ कुश्ती कर रहा था। खुशी है कि मैं नीचे स्क्रॉल किया! – Lambart

संबंधित मुद्दे