#!/usr/bin/env python import sys import dbg def make_lines(s): if not s: return [] if '\n' not in s: return [ s ] i = s.index( '\n' ) return [ s[ : i + 1 ] ] + make_lines( s[ i + 1 : ] ) def run(): av = sys.argv[ 1 : ] if len( av ) < 1: dbg.help_exit( 'pat_file' ) pat_lines = [] with open( av[ 0 ], 'r' ) as f: pat_lines = make_lines( f.read() ) #dbg.out( 'pat_lines={}'.format( pat_lines ) ) buf_lines = [] def clear(): del buf_lines[ : ] def flush(): s = ''.join( buf_lines ) clear() return s def cnv(s): i = len( buf_lines ) if s == pat_lines[ i ]: buf_lines.append( s ) if len( buf_lines ) == len( pat_lines ): clear() return '' if buf_lines: s = flush() + s return s while True: s = sys.stdin.readline() if not s: break s = cnv( s ) sys.stdout.write( s ) sys.stdout.write( flush() ) if __name__ == "__main__": run() # EOF