'कम' (GNU) में लाइन नंबर कैसे प्रदर्शित करें


660

बाएं कॉलम में कम डिस्प्ले लाइन नंबर बनाने के लिए कमांड क्या है ?


80
lessएक लाइन कमांड लाइन उपयोगिता है, और आमतौर पर प्रोग्रामर द्वारा पाठ फ़ाइलों को देखने के लिए उपयोग किया जाता है। यह प्रश्न "प्रोग्रामर्स द्वारा उपयोग किए जाने वाले टूल" के डोमेन के तहत स्टैक ओवरफ्लो के लिए ठोस रूप से ऑन-टॉपिक है, जिस तरह से उपयोग करने से संबंधित सभी प्रश्न gitऑन-टॉपिक हैं। यह "कम शो लाइन नंबर" की खोज करते समय Google में पहली हिट भी है। यह सवाल बंद नहीं होना चाहिए।
जॉन डिब्लिंग

5
@JohnDibling यह सवाल यूनिक्स और लिनक्स स्टैक एक्सचेंज के लिए अधिक उपयुक्त है । सिर्फ इसलिए lessकि प्रोग्रामर्स द्वारा उपयोग किया जाता है यह विषय पर नहीं बनता है। पेंसिल "प्रोग्रामर द्वारा उपयोग किए जाने वाले उपकरण" हैं, लेकिन पेंसिल को कैसे तेज किया जाए, इस बारे में एक सवाल यहां उचित नहीं होगा।
अगस्तुर

17
@augurar मुझे लगता है कि आप करते जानते उपकरण यहाँ मतलब यह है कि सॉफ्टवेयर उपकरण । आप जानबूझकर संदर्भ से बाहर के साधनों के अर्थ की व्याख्या कर रहे हैं। वैसे, मुझे यह भी लगता है कि यह प्रश्न यूनिक्स और लिनक्स स्टैक एक्सचेंज के लिए उपयुक्त है, लेकिन यह इस सवाल को SO :) पर यहाँ होने से नहीं रोकता है
गैब 好人

जवाबों:


979

से मैनुअल :

-N या - online-NUMBERS प्रत्येक पंक्ति के आरंभ में प्रदर्शित होने वाली पंक्ति संख्या प्रदर्शित करता है।

आप टाइप करके कम छोड़ने के बिना भी लाइन नंबरों को टॉगल कर सकते हैं -N

इस तरह से कम कमांड लाइन विकल्पों में से किसी को भी टॉगल करना संभव है।


6
जब मैं एक विशाल फ़ाइल को कम करता हूं तो नीचे "जी", यह कहता है "रेखा संख्याओं की गणना ... (गर्भपात के लिए रुकावट)" भले ही वह पंक्ति संख्या प्रदर्शित नहीं कर रही हो। मैं जानना चाहता हूँ कि कैसे पता करें कि मैं किस लाइन से बाहर निकल रहा हूँ और -N के साथ फिर से जुड़ रहा हूं। मैं दंड भुगत रहा हूं। इनाम कहां है?
ब्रूनो ब्रोंस्की ऑग

93
वाह, मैंने कम से कम दर्जनों बार इस पर जवाब खोजने की उम्मीद में मदद को देखा है। मैंने हमेशा अनदेखी की है "- <ध्वज> एक कमांड लाइन विकल्प टॉगल करें [नीचे विकल्प देखें]।" ... जिसका अर्थ है कि आप कम से "टाइप-एन" टाइप कर सकते हैं। मैं लगभग एक दशक से इससे परेशान हूं। अच्छा समय!
ब्रूनो ब्रोंस्की ऑग

2
क्या एक अलग रंग में रेखा संख्याओं को प्रदर्शित करना संभव है?
ग्रग

3
Hi @greg आप रंगों को प्रदर्शित करने के sedलिए लाइन नंबरों और विकल्प को रंगीन करने के लिए उपयोग कर सकते हैं : आप अनुकूलित भी कर सकते हैं ... चीयर्स;)-Rlesscat -n file.txt | sed 's/^[ 0-9]*[0-9]/\o033[34m&\o033[0m/' | less -RLESSOPEN
olibre

1
यदि आप टॉगल करने का प्रयास कर रहे हैं, तो ENTER / RETURN को हिट करें। कम उपयोग करते समय -N या -N टाइप करने के बाद, आपको परिवर्तनों को प्रभावी करने के लिए बाद में हिट करना पड़ सकता है। यह नीचे से भी ऐसा कहता है, लेकिन मेरे दिमाग ने डॉट्स को कनेक्ट नहीं किया क्योंकि मैंने माना कि यह तात्कालिक होगा और मैं टाइप -N रखता था और सोच रहा था कि नंबर कभी क्यों नहीं दिखा।
अबेलिटो

146

आप भी कर सकते हैं प्रेस =जबकि lessसिर्फ प्रदर्शन (स्क्रीन के नीचे) को लाइन नंबर, स्वरूप के साथ सहित वर्तमान स्क्रीन, के बारे में जानकारी के लिए खुला है:

myfile.txt lines 20530-20585/1816468 byte 1098945/116097872 1%  (press RETURN)

इसलिए यहां उदाहरण के लिए, स्क्रीन वर्तमान में लाइनें दिखा रही थी 20530-20585, और फ़ाइलों में कुल 1816468लाइनें हैं।


44

आप cat -nपाइपिंग करने से पहले फ़ाइल को फ़िल्टर कर सकते हैं less:

cat -n file.txt | less

या, यदि आपका संस्करण lessइसका समर्थन करता है, तो -Nविकल्प:

less -N file.txt

4
कम संस्करण में से क्या आप जानते हैं कि इसका समर्थन नहीं करते हैं?
हारून हॉल

मैं आमतौर पर बिल्ली के बजाय -n
ychaouche

32

आप हमेशा इन विकल्पों को सभी कम फ़ाइल में लागू करने के लिए एक एनवायरनमेंट चर सेट कर सकते हैं:

export LESS='-RS#3NM~g'

2
लाइन alias less="LESS='-RS#3NM~g' less"में .bashrcमेरा दिन था! धन्यवाद!
ज्यूरी


3
विकल्प हैं: आर = फाइलों में कच्चे रंग कोडों की बेहतर हैंडलिंग। S = वर्ड रैप के बजाय स्क्रीन से लंबी लाइनें स्क्रॉल करें। # 3 = एक समय में 3 पदों से दाएं / बाएं स्क्रॉल करें। एन = शो लाइन नंबर। एम = लंबा संकेत देता है। ~ = फ़ाइल के साथ समाप्त होने के बाद खाली स्थान प्रदर्शित करने के बजाय ~, रिक्त स्थान के लिए कुछ भी प्रदर्शित न करें। g = 'g' के साथ एक खोज करते समय, सभी मैचों के बजाय केवल वर्तमान मैच को हाइलाइट करें।
ब्रायन

17

कमांड लाइन के झंडे -Nया --LINE-NUMBERSप्रदर्शन में प्रत्येक पंक्ति की शुरुआत में एक लाइन नंबर प्रदर्शित करने का कारण बनता है।

आप lessटाइप करके छोड़ने के बिना भी लाइन नंबर टॉगल कर सकते हैं -N<return>lessइस तरह से किसी भी कमांड लाइन विकल्प को टॉगल करना संभव है ।


1
पासिंग -N या - Online-NUMBERS केवल मेरे लिए CentOS 5.3 में तारीख दिखाता है। हालांकि -N का उपयोग कम काम शुरू करने के बाद।
माइक मिलर

15

यदि आप हिट करते हैं =और लाइन नंबर देखने की उम्मीद करते हैं, लेकिन केवल बाइट काउंट देखते हैं, तो लाइन नंबर बंद हो जाते हैं। -nउन्हें चालू करने के लिए मारो , और सुनिश्चित करें कि $LESSइसमें 'n' शामिल नहीं है।

डिफ़ॉल्ट रूप से लाइन नंबर बंद करना (उदाहरण के लिए, सेटिंग LESS=n) बहुत बड़ी फ़ाइलों में खोजों को गति देता है। यदि आप अक्सर बड़ी फ़ाइलों के माध्यम से खोज करते हैं, तो यह आसान है, लेकिन आमतौर पर परवाह नहीं है कि आप किस लाइन पर हैं।

मैं आमतौर पर LESS=RSXin(एस्केप कोड सक्षम, लंबी लाइनों में कटा हुआ, निकास पर स्क्रीन को साफ नहीं करता, सभी निचले मामलों की खोजों पर मामले को अनदेखा करता हूं, और कोई भी पंक्ति संख्या डिफ़ॉल्ट रूप से नहीं गिनता) और केवल आवश्यकतानुसार -nया -Sअंदर से उपयोग lessकरता हूं।

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