Skip to content

Commit 6607cde

Browse files
Add -b flag to number only non-empty lines
1 parent d1c1354 commit 6607cde

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

  • implement-shell-tools/cat

implement-shell-tools/cat/cat.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
)
99

1010
parser.add_argument("-n", "--number", action="store_true", help="Number all output lines")
11+
parser.add_argument("-b", "--number-nonblank", action="store_true", help="Number non-empty lines only")
1112
parser.add_argument("path", help="File to read")
1213

1314
args = parser.parse_args()
1415

15-
1616
# Read the file
1717
with open(args.path, "r") as f:
1818
content = f.read()
@@ -29,5 +29,21 @@
2929
numbered_lines.append(numbered_line)
3030

3131
print("\n".join(numbered_lines))
32+
33+
elif args.number_nonblank:
34+
lines = content.split("\n")
35+
numbered_lines = []
36+
line_number = 0
37+
38+
for line in lines:
39+
if line.strip() == "": # Empty line
40+
numbered_lines.append(line) # Don't number it
41+
else: # Non-empty line
42+
line_number = line_number + 1
43+
numbered_line = f"{line_number:6}\t{line}"
44+
numbered_lines.append(numbered_line)
45+
46+
print("\n".join(numbered_lines))
47+
3248
else:
3349
print(content)

0 commit comments

Comments
 (0)