def doComplementDelete(keepSet): # print("doComplementDelete") meetEOF = False while not meetEOF: lines, meetEOF = storeLines(1) if lines: print(complement(lines[0], keepSet, ""), end="")
def doDelete(targetSet): # print("doDelete") # print(targetSet) meetEOF = False while not meetEOF: lines, meetEOF = storeLines(1) if lines: print(delete(lines[0], targetSet), end="")
def doComplementSqueeze(src, rep): # print("doComplementSqueeze") # print('rep = %s' % rep) keepSet = set(src) meetEOF = False while not meetEOF: lines, meetEOF = storeLines(1) if lines: print(complementUnique(lines[0], keepSet, None, rep), end="")
def doSqueeze(src, rep): # print("doSqueeze") transformTable = None if rep: transformTable = {src[i]: rep[i] for i in range(len(src))} meetEOF = False while not meetEOF: lines, meetEOF = storeLines(1) if lines: print(unique(lines[0], transformTable), end="")
def doCat(args): global prevLine, lineCount, nonblankLineCount meetEOF = False while not meetEOF: lines, meetEOF = storeLines(1) if not lines: continue line = lines[0][:-1] lineCount += 1 if line != '': nonblankLineCount += 1 show(line, args) else: if not args.squeeze_blank or prevLine != '': show('', args) else: lineCount -= 1 prevLine = line
def doUnique(args): prevLine = None prevKey = None times = 0 meetEOF = False while not meetEOF: lines, meetEOF = storeLines(1) if lines: line = lines[0][:-1] # compare with previous line key = getKey(line, args) # print('key = %s' % key) if key == prevKey: times += 1 if args.all_repeated: print(prevLine) else: # print('key = %s, prevKey = %s' % (key, prevKey)) show(prevLine, times, args) prevKey = key times = 1 prevLine = line show(prevLine, times, args)