fork download
  1. #!python
  2.  
  3. import sys
  4. import re
  5.  
  6. class DelGrep:
  7. def __init__(self, pat, n):
  8. self.pat = pat
  9. self.n = n
  10.  
  11. def run(self, inp, outp):
  12. self.buf = ["NOPRINT\n"] * self.n
  13. self.no_print_count = self.n
  14.  
  15. for line in inp:
  16. if re.search(self.pat, line):
  17. self.no_print_count = self.n * 2 + 1
  18.  
  19. self.buf.append(line)
  20. self._write(outp, self.buf.pop(0))
  21.  
  22. for line in self.buf:
  23. self._write(outp, line)
  24.  
  25. def _write(self, outp, line):
  26. if self.no_print_count > 0:
  27. self.no_print_count -= 1
  28. return
  29.  
  30. outp.write(line)
  31.  
  32.  
  33. if __name__ == '__main__':
  34. # dg = DelGrep(sys.argv[0], int(sys.argv[1]))
  35. dg = DelGrep("^10$", 3)
  36. dg.run(sys.stdin, sys.stdout)
  37.  
Success #stdin #stdout 0.03s 9600KB
stdin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
stdout
1
2
3
4
5
6
14
15
16
17
18
19
20