टर्मिनल में टेक्स्ट फ़ाइलों के मानक आउटपुट में लाइन नंबर जोड़ें

लाइनों को जोड़ने के बारे में

अगले लेख में हम कुछ तरीके देखेंगे टेक्स्ट फ़ाइलों में लाइन नंबर जोड़ें कि हम कल्पना से अंतिम। यदि आपने कभी सोचा है कि इन लाइन नंबरों को अपने Gnu / Linux टेक्स्ट फ़ाइलों के मानक आउटपुट में कैसे जोड़ा जाए, तो यह छोटा लेख इसे करने के विभिन्न तरीकों को समझाने का प्रयास करने वाला है।

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

मानक पाठ फ़ाइल आउटपुट में लाइन नंबर जोड़ें

शुरुआत करने के लिए, हम एक फाइल बनाने जा रहे हैं, जिसे कहा जाता है file.txt। इसमें मैं कंटेंट देने के लिए कुछ लाइनें जोड़ूंगा, जिनकी पहचान की जाएगी। मेरे द्वारा बनाई गई फ़ाइल की सामग्री को देखने के लिए, हम टर्मिनल खोलेंगे (Ctrl + Alt + T) और उसमें लिखें:

बिल्ली लाइनों

cat archivo.txt

Nl कमांड का उपयोग करना

जैसा कि कैट कमांड के आउटपुट से देखा जा सकता है, फाइल में 10 लाइनें हैं, जिनमें से तीन खाली हैं। हम का उपयोग कर लाइन संख्या जोड़ देंगे nl कमांड। ऐसा करने के लिए, चलाएं:

nl लाइनों

nl archivo.txt

जैसा कि पिछले कैप्चर में देखा गया है, nl कमांड खाली लाइनों को अनदेखा करती है। बस संख्याओं को गैर-रिक्त लाइनों में जोड़ें। अगर तुम चाहते हो सभी लाइनों की संख्या, खाली लाइनों सहित, चलाएं:

nl -ba लाइनें

nl -b a archivo.txt

इसके अलावा, परिणाम को पढ़ते समय अधिक स्पष्टता के लिए, हम कर सकते हैं संख्याओं के बाद एक प्रतीक जोड़ें। उदाहरण के लिए, संख्याओं के बाद की अवधि जोड़ने के लिए, दौड़ें:

nl -s डॉट लाइनें

nl -s "." archivo.txt

आप चाहें संरेखित उत्पादन चौड़ाई। ऐसा करने के लिए, का उपयोग करें एक चर मूल्य के साथ -w विकल्प जैसा कि यह निम्नलिखित में दिखाया गया है:

nl w3 लाइनों

nl -w3 archivo.txt

बिल्ली कमान का उपयोग करना

बिल्ली कमांड का उपयोग किसी फ़ाइल की सामग्री को प्रदर्शित करने के लिए किया जाता है, जैसा कि इस लेख के पहले स्क्रीनशॉट में देखा गया है। यदि आप किसी फ़ाइल के आउटपुट में नंबर जोड़ना चाहते हैं, उपयोग -n जैसा कि यह निम्नलिखित में दिखाया गया है:

बिल्ली-एन लाइनों

cat -n archivo.txt

आपकी रुचि हो सकती है एक नई फ़ाइल में मानक आउटपुट पास करें। ऐसा करने के लिए, आपको बस नीचे दिखाए अनुसार कमांड चलाना होगा:

cat -n archivo.txt > nuevoarchivo.txt

Awk कमांड का उपयोग करना

प्राप्त परिणाम के लिए यह शायद सबसे जटिल तरीका है। जोड़ने के लिए awk कमांड का उपयोग कर आउटपुट फाइल करने के लिए लाइन नंबर, Daud:

जाग लाइनों

awk 'BEGIN{i=1} /.*/{printf "%d.% s\n",i,$0; i++}' archivo.txt

जैसा कि आपने देखा, मैंने सौंपा है BEGIN पैरामीटर में नंबर 1 के रूप में शुरू करना। हम आपकी पसंद की कोई भी अन्य प्रारंभिक संख्या बता सकते हैं, उदाहरण के लिए 5, जैसा कि नीचे देखा जा सकता है:

5 बजे जागना शुरू

awk 'BEGIN{i=5} /.*/{printf "%d.% s\n",i,$0; i++}' archivo.txt

निम्न आदेश का उपयोग करें यदि आप रिक्त लाइनों को ध्यान में नहीं रखना चाहते हैं:

awk कोई खाली लाइनें नहीं

awk 'BEGIN{i=0} {if($0 !~ /^$/) {printf ("%d.%s \n",i,$0); i++} else { print $0} } ' archivo.txt

अगर आपको लगता है कि उपरोक्त कमांड्स को याद रखना थोड़ा मुश्किल है, तो निम्न कमांड का उपयोग करें, जो आपको वही परिणाम देगा, जो AWK कमांड के साथ दिखाया गया है:

awk एफएनआर

awk '{ print FNR " " $0 }' archivo.txt

Sed कमांड का उपयोग करना

जोड़ने के लिए sed कमांड का उपयोग करके मानक फ़ाइल आउटपुट के लिए लाइन नंबर, Daud:

लकीरें

sed '/./=' archivo.txt | sed '/./N; s/\n/ /'

उल्लेख करने के लिए sed कमांड में एक अच्छा फीचर है। कर सकते हैं एक फ़ाइल से एक विशिष्ट लाइन प्रदर्शित करें। उदाहरण के लिए, हमारी फ़ाइल की सातवीं पंक्ति प्रदर्शित करने के लिए:

सीड कंक्रीट लाइन

sed -n 7p archivo.txt

कम कमांड का उपयोग करना

पैरा कम का उपयोग करके किसी फ़ाइल के मानक आउटपुट में संख्या को जोड़ें, Daud:

कम-एन

less -N archivo.txt

Grep कमांड का उपयोग करना

Grep कमांड का उपयोग उस लाइन को खोजने के लिए किया जा सकता है जिसमें विशिष्ट टेक्स्ट होता है। यदि आप चाहते हैं उन पंक्तियों में लाइन नंबर जोड़ें, जिनमें खोजा गया पाठ है, Daud:

ग्रेप-एन

grep -n "línea" archivo.txt

ध्यान रखें कि यह कमांड केवल उन पंक्तियों में संख्याओं को जोड़ेगी जिनमें खोज स्ट्रिंग है। इसके अलावा, जैसा कि स्क्रीनशॉट में देखा गया है, यह खोजे गए पाठ को रंग देता है। दिए गए फ़ाइल में बाकी सब कुछ छोड़ दिया जाएगा।

और यह बात है, यहां तक ​​कि मुझे यह भी कहना है इन आदेशों के अन्य विकल्प हैं कि वे पूरक या विस्तार कर सकते हैं जिनका वर्णन इस लेख में किया गया है। यहां बताए गए आदेशों के बारे में अधिक जानकारी के लिए, आप से परामर्श कर सकते हैं आदमी पृष्ठों.


3 टिप्पणियाँ, तुम्हारा छोड़ दो

अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   कोई नहीं कहा

    awk कमांड में रेगुलर एक्सप्रेशन "/.*/" सर्च करने की जरूरत नहीं है
    डिफ़ॉल्ट रूप से यह पहले ही फ़ाइल को लाइनों में विभाजित करता है और $ 0 में लाइन होती है, इसलिए

    awk 'BEGIN {i = 1} {printf "% 03d:% s \ n", i, $ 0; i ++} 'file.txt

    की तुलना में समान (और बेहतर) काम करता है

    awk 'BEGIN {i = 1} /.*/ Isprintf "% d।% s \ n", i, $ 0; i ++} 'file.txt

  2.   मिगुएल क्विंटाना कहा

    उत्कृष्ट योगदान! आपका बहुत बहुत धन्यवाद!

  3.   रोड्रिगो लूना कहा

    अनुकूल ग्रीटिंग शुरू करने से पहले।

    मैं यहाँ निम्नलिखित स्क्रिप्ट के साथ एक मुद्दा है।

    एक खोज से मेल खाने वाली लाइनों पर जानकारी एक फ़ाइल से प्राप्त की जाती है और एक चर में संग्रहीत की जाती है।
    उदाहरण:
    मान = `awk -F«: »'{प्रिंट $ 1» »$ 2» »$ 3}' hociporky | grep "201025" -n`

    फिर आप चर के माध्यम से पुनरावृत्ति करते हैं और फिर फ़ाइल में एक विशिष्ट रेखा की तलाश करते हैं।
    उदाहरण:
    $ मूल्यों में मूल्य के लिए; करना
    sed -n "$ {value} p" फ़ाइल
    किया

    लेकिन यह एक त्रुटि भेजता है
    sed: -e अभिव्यक्ति # 1, char 1: अज्ञात कमांड: `

    क्या कोई मुझे समझा सकता है कि इसे क्यों और कैसे हल किया जा सकता है?