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
-m100will make grep stop reading the input file if 100 matches are hit. It's pretty useful if you are reading a huge file - the
tailcommand 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'
