So I have a string at the beginning of a line and can find all of them. I am using ^$string to match and I have thousands of these and an error occurs on a specific line. Let's say I was trying to get to the 100th occurrence of this pattern how would I do so?
For example, I can grep ^$string and list all but I would like to find a specific one.
CodePudding user response:
grep has -m / --max-count
option:
grep -m100 '^String' | tail -1
will give you the 100th matched line.
Note:
- the
-m100
will make grep stop reading the input file if 100 matches are hit. It's pretty useful if you are reading a huge file - the
tail
command is very fast since it doesn't read the content.
CodePudding user response:
You can use sed
to print only a single line of your grep
's output :
grep "^$string" inputFile | sed -n '100p'
-n
has output disabled by default, 100p
prints the input to the output stream for the 100th line only.
Or as @dan mentions in the comments :
grep "^$string" inputFile | sed '100!d; 100q'