コード例 #1
0
ファイル: tr.py プロジェクト: uuuouou/PythonBash
def main():
    parser = buildParser()
    args = parser.parse_args()
    # print(args)
    if not processArgs(args):
        return

    if args.delete:
        if args.complement:
            # delete those not in src
            doComplementDelete(set(args.src))
        else:
            # delete those in src
            doDelete(set(args.src))

    elif args.squeeze:
        if args.complement:
            doComplementSqueeze(args.src, args.rep)
        else:
            doSqueeze(args.src, args.rep)
    else:
        echoLines(-1, tillEOF=True)
コード例 #2
0
ファイル: head.py プロジェクト: uuuouou/PythonBash
def main():
	parser = buildParser()
	args = parser.parse_args()
	# print(args)
	if not processArgs(args):
		return

	# check if given input files
	for i, f in enumerate(args.files + [sys.__stdin__]):
		if i:
			print()
		if args.files:
			if f == sys.__stdin__:
				# done already
				break
			else:
				# redirect input stream
				if args.verbose or not args.quiet and len(args.files) > 1:
					printHeader(f)
				f = open(f, errors = 'ignore')
				sys.stdin = f
		# deal with options
		if args.lines is not None:
			if args.skipLines:
				if not discardLines(args.lines - 1):
					echoLines(-1, tillEOF = True)
			else:
				echoLines(args.lines)
		elif args.chars is not None:
			if args.skipChars:
				# print('discard %d chars' % (args.chars - 1))
				restOfLastLine, meetEOF = discardChars(args.chars - 1)
				if restOfLastLine:
					print(restOfLastLine, end = '')
				if not meetEOF:
					echoLines(-1, tillEOF = True)
			else:
				echoChars(args.chars)
		else:
			echoLines(-1, tillEOF = True)
		# close file
		if args.files:
			f.close()
			sys.stdin = sys.__stdin__