This commit is contained in:
perro tuerto 2023-02-24 11:29:53 -08:00
parent e6c18957e6
commit c27cc4b41f
5 changed files with 26 additions and 24 deletions

View File

@ -1,4 +1,4 @@
# Exercise 1
# Exercise 4
# 1. Getting help with -help or -h.
# 2. A least three arguments that are flags, meaning they dont take an extra
# argument but simply putting them on the command line turns something on.
@ -10,12 +10,12 @@
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('filename')
parser.add_argument('-o1', '--opt1')
parser.add_argument('-o2', '--opt2')
parser.add_argument('-o3', '--opt3')
parser.add_argument('-f1', '--flag1', action='store_true')
parser.add_argument('-f2', '--flag2', action='store_true')
parser.add_argument('-f3', '--flag3', action='store_true')
parser.add_argument("filename")
parser.add_argument("-o1", "--opt1")
parser.add_argument("-o2", "--opt2")
parser.add_argument("-o3", "--opt3")
parser.add_argument("-f1", "--flag1", action="store_true")
parser.add_argument("-f2", "--flag2", action="store_true")
parser.add_argument("-f3", "--flag3", action="store_true")
args = parser.parse_args()
print(args)

View File

@ -1,13 +1,15 @@
# Exercise 2
# Exercise 5
# 1. cat command
import argparse
from pathlib import Path
parser = argparse.ArgumentParser()
parser.add_argument('paths', nargs="+", type=Path)
parser.add_argument('-b', '--number-nonblank', default=False, action="store_true")
parser.add_argument('-n', '--number', default=False, action="store_true")
parser.add_argument("paths", nargs="+", type=Path)
parser.add_argument(
"-b", "--number-nonblank", default=False, action="store_true"
)
parser.add_argument("-n", "--number", default=False, action="store_true")
args = parser.parse_args()
count = 1
rest = 0
@ -15,16 +17,16 @@ out = []
for path in args.paths:
if path.is_file():
for line in open(path, 'r').readlines():
for line in open(path, "r").readlines():
blank = len(line.strip()) == 0 and args.number_nonblank
if blank:
out.append({"ln": 0, "txt": ''})
out.append({"ln": 0, "txt": ""})
else:
out.append({"ln": count, "txt": line.rstrip()})
count += 1
for el in out:
line = ''
line = ""
blank = len(el["txt"].strip()) == 0 and args.number_nonblank
if args.number and not blank:
total_width = len(str(out[-1]["ln"] - rest))

View File

@ -1,4 +1,4 @@
# Exercise 2
# Exercise 6
# 1. find command
import sys

View File

@ -1,4 +1,4 @@
# Exercise 2
# Exercise 7
# 1. grep command
import re
@ -40,9 +40,9 @@ def grep(path, args):
parser = argparse.ArgumentParser()
parser.add_argument('paths', nargs="+", type=Path)
parser.add_argument('-i', '--ignore-case', default=False, action="store_true")
parser.add_argument('-E', '--extended-regexp', default=False, type=str)
parser.add_argument("paths", nargs="+", type=Path)
parser.add_argument("-i", "--ignore-case", default=False, action="store_true")
parser.add_argument("-E", "--extended-regexp", default=False, type=str)
if len(sys.argv) > 1:
if sys.argv[1] != "-E" and sys.argv[1] != "-i":

View File

@ -1,4 +1,4 @@
# Exercise 2
# Exercise 8
# 1. cut command
import re
@ -31,9 +31,9 @@ def parse(fields):
parser = argparse.ArgumentParser()
parser.add_argument('stream', default=sys.stdin, nargs="?")
parser.add_argument('-d', '--delimiter', default=False, type=str)
parser.add_argument('-f', '--fields', type=str, required=True)
parser.add_argument("stream", default=sys.stdin, nargs="?")
parser.add_argument("-d", "--delimiter", default=False, type=str)
parser.add_argument("-f", "--fields", type=str, required=True)
args = parser.parse_args()
for line in args.stream: