मैं लाइन के अंत में लाइन नंबर दिखाने के लिए अपने grep आउटपुट को कैसे प्रारूपित कर सकता हूं, और हिट काउंट भी?


378

मैं एक फ़ाइल में स्ट्रिंग से मिलान करने के लिए grep का उपयोग कर रहा हूं। यहाँ एक उदाहरण फ़ाइल है:

example one,
example two null,
example three,
example four null,

grep -i null myfile.txt रिटर्न

example two null,
example four null,

मैं मिलान रेखाओं को उनकी रेखा संख्याओं के साथ इस तरह कैसे वापस कर सकता हूं:

  example two null, - Line number : 2
  example four null, - Line number : 4
  Total null count : 2

मुझे पता है -c कुल मिलान वाली रेखाएँ देता है, लेकिन मैं यह नहीं जानता कि इसे ठीक से total null countसामने लाने के लिए कैसे प्रारूपित किया जाए , और मुझे नहीं पता कि पंक्ति संख्याओं को कैसे जोड़ा जाए।

मैं क्या कर सकता हूँ?

जवाबों:


600

-n रिटर्न लाइन नंबर।

-iअनदेखी के मामले के लिए है। केवल तभी उपयोग किया जा सकता है यदि मामला मिलान आवश्यक नहीं है

$ grep -in null myfile.txt

2:example two null,
4:example four null,

awkमैच के बाद लाइन नंबर का प्रिंट आउट लेने के लिए गठबंधन करें :

$ grep -in null myfile.txt | awk -F: '{print $2" - Line number : "$1}'

example two null, - Line number : 2
example four null, - Line number : 4

कुल रिक्त संख्या का प्रिंट आउट करने के लिए कमांड प्रतिस्थापन का उपयोग करें:

$ echo "Total null count :" $(grep -ic null myfile.txt)

Total null count : 2

क्या मैं इसके बजाय पहले के साथ लाइन नंबर जोड़कर इसे प्रारूपित कर सकता हूं:?
लंदन

आपका समाधान ठीक लगता है लेकिन एक त्रुटि मिलती हैawk95: syntax error at source line context is >>> ' <<< missing } awk95: bailing out at source line 1
लंदन

क्षमा करें, अब इसके काम करने के लिए लिनक्स पर स्विच किया गया है :) यह विंडोज़ संस्करण इतना अच्छा नहीं था
लंदन

1
... शूरवीरों का कहना -niहै कि आप इस ट्रिक को कैसे याद करते हैं
santiago arizti

59

का प्रयोग करें -nया --line-number

की जाँच करें man grepबहुत अधिक विकल्पों के लिए।


3
नया लिनक्स उपयोगकर्ता मैन पेज पढ़ने में आलसी है। लेकिन अगर वे पर्याप्त रूप से लिनक्स का उपयोग करते हैं, तो वे इसके लिए उपयोग किए जाएंगे :) यह सुपर उपयोगी है :)
Dzung Nguyen

19
हमेशा आलसी नहीं, (लेकिन कभी-कभी), अक्सर यह होता है कि एक नए लिनक्स उपयोगकर्ता को मैन पेज समझने में परेशानी होती है। (वे गूढ़ लग सकते हैं )
TecBrat

कभी-कभी मैन पेज कई पेज ले सकता है। और यह उन सभी को पढ़ना मुश्किल है
यूजेन कोनकोव

7

grep -n -i null myfile.txtप्रत्येक मैच के सामने लाइन नंबर का उत्पादन करने के लिए उपयोग करें।

मुझे नहीं लगता कि grep में मिलान की गई कुल पंक्तियों की गिनती को प्रिंट करने के लिए एक स्विच है, लेकिन आप इसे पूरा करने के लिए grep के आउटपुट को wc में पाइप कर सकते हैं:

grep -n -i null myfile.txt | wc -l

3
-c मिलान की गई कुल पंक्तियों को प्रिंट करेगा
dpatchery

तुम सही हो। दुर्भाग्य से यह सामान्य आउटपुट को भी दबा देता है।
jhenninger


4

grepलाइनों को ढूंढें और लाइन संख्याओं को आउटपुट करें, लेकिन आपको अन्य चीजों को "प्रोग्राम" नहीं करने देता है। यदि आप मनमाना पाठ शामिल करना चाहते हैं और अन्य "प्रोग्रामिंग" करना चाहते हैं, तो आप awk का उपयोग कर सकते हैं,

$ awk '/null/{c++;print $0," - Line number: "NR}END{print "Total null count: "c}' file
example two null,  - Line number: 2
example four null,  - Line number: 4
Total null count: 2

या केवल शेल (बैश / ksh) का उपयोग करके

c=0
while read -r line
do
  case "$line" in
   *null* )  (
    ((c++))
    echo "$line - Line number $c"
    ;;
  esac
done < "file"
echo "total count: $c"

3

या पर्ल में (पूर्णता के लिए ...):

perl -npe 'chomp; /null/ and print "$_ - Line number : $.\n" and $i++;$_="";END{print "Total null count : $i\n"}'

2

लिंक के लिए इस लिंक को देखें linux कमांड linux http://linuxcommand.org/man_pages/grep1.html

लाइन नंबर, कोड और फ़ाइल को अपने टर्मिनल या cmd में इस कमांड का उपयोग करने के लिए, GitBash (टर्मिनल द्वारा संचालित)

grep -irn "YourStringToBeSearch"

1

बस मैंने सोचा था कि भविष्य में आपकी मदद कर सकता हूं। एकाधिक स्ट्रिंग और आउटपुट लाइन नंबर खोजने और आउटपुट के माध्यम से ब्राउज़ करने के लिए, टाइप करें:

egrep -ne 'null|three'

दिखाएंगे:

2:example two null,  
3:example three,  
4:example four null,   

egrep -ne 'null|three' | less

कम सत्र में आउटपुट प्रदर्शित करेगा

HTH जून

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