I’m using grep to match string in a file. Here is an example file:
example one, example two null, example three, example four null,
grep -i null myfile.txt
returns
example two null, example four null,
How can I return matched lines together with their line numbers like this:
example two null, - Line number : 2 example four null, - Line number : 4 Total null count : 2
I know -c returns total matched lines, but I don’t how to format it properly to add total null count
in front, and I don’t know how to add the line numbers.
What can I do?
Advertisement
Answer
-n
returns line number.
-i
is for ignore-case. Only to be used if case matching is not necessary
$ grep -in null myfile.txt 2:example two null, 4:example four null,
Combine with awk
to print out the line number after the match:
$ grep -in null myfile.txt | awk -F: '{print $2" - Line number : "$1}' example two null, - Line number : 2 example four null, - Line number : 4
Use command substitution to print out the total null count:
$ echo "Total null count :" $(grep -ic null myfile.txt) Total null count : 2