it-swarm.asia

كيف يمكن تنسيق إخراج grep الخاص بي لإظهار أرقام الأسطر في نهاية السطر ، وكذلك عدد مرات الدخول؟

أنا أستخدم 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

أعرف - ج تقوم بإرجاع إجمالي الأسطر المتطابقة ، لكنني لا أقوم بتنسيقها بشكل صحيح لإضافة total null count في المقدمة ، ولا أعرف كيفية إضافة أرقام الأسطر.

ماذا بإمكاني أن أفعل؟

332
London

-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
530
dogbane

استخدم -n أو --line-number.

تحقق من man grep لمعرفة المزيد من الخيارات.

51
Andy Lester

أو استخدم awk بدلاً من ذلك:

awk '/null/ { counter++; printf("%s%s%i\n",$0, " - Line number: ", NR)} END {print "Total null count: " counter}' file
6
Zsolt Botykai

استخدم grep -n -i null myfile.txt لإخراج رقم السطر أمام كل مباراة.

لا أعتقد أن لدى grep مفتاحًا لطباعة عدد الخطوط المتطابقة ، ولكن يمكنك فقط إخراج إخراج grep في wc لإنجاز ذلك:

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

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

أو فقط باستخدام Shell (bash/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
ghostdog74

أو في بيرل (للتأكد من اكتمالها ...):

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

راجع هذا الرابط لنظام linux command linux http://linuxcommand.org/man_pages/grep1.html

لعرض السطر رقم ، سطر التعليمات البرمجية والملف استخدام هذا الأمر في المحطة الطرفية أو cmd ، GitBash (مدعوم من محطة)

grep -irn "YourStringToBeSearch"
1
Vrushal Raut

فقط فكرت في شيء قد يساعدك في المستقبل. للبحث في العديد من أرقام السلاسل والخطوط وتصفح الإخراج ، اكتب:

egrep -ne 'null | three'

سوف تظهر:
2: مثال اثنين لاغية ،
3: المثال الثالث ،
4: مثال أربعة فارغة ،

egrep -ne 'null | three' | أقل

سيعرض الإخراج في جلسة أقل

HTH يونيو

0
Honest Abe