Pynosaur

Modern CLI tools with better UX

View the Project on GitHub pynosaur/pynosaur

← Back

see

Display file contents with optional formatting, slicing, and emphasis.

Version: 0.1.2

Features

Usage

# Basic usage
see file.txt
see --help
see --version

# Line slicing (with colon :)
see -l 0:10 file.txt           # Slice: lines 0-10
see -l :5 file.txt             # Slice: first 5 lines
see -l 5: file.txt             # Slice: from line 5 to end
see -l -5: file.txt            # Slice: last 5 lines
see -l -10:-5 file.txt         # Slice: lines -10 to -5
see -l 0:20:2 file.txt         # Slice: every 2nd line from 0-20
see -l ::-1 file.txt           # Slice: reverse file

# Specific line indices (no colon)
see -l 5 file.txt              # Single: just line 5
see -l -5 file.txt             # Single: line at index -5
see -l 0,2,4 file.txt          # Multiple: lines 0, 2, and 4
see -l 10,20,30 file.txt       # Multiple: lines 10, 20, and 30

# Character slicing
see -c 0:100 file.txt          # First 100 characters
see -c 50:150 file.txt         # Characters 50-150

# Pattern emphasis (highlighting)
see -e "error" file.txt                           # Highlight "error"
see -e "TODO" -e "FIXME" file.txt                 # Multiple patterns
see --color=yellow --bold -e "warning" file.txt   # Yellow bold
see -i -e "warning" file.txt                      # Case-insensitive

# Line emphasis (entire lines)
see -E 1,3,5 file.txt                             # Emphasize lines 1, 3, 5
see -E 0:10 --color=green file.txt                # Emphasize lines 0-10

# Line numbers
see -n file.txt                                   # Show line numbers

# Combine features
see -n -l 0:20 -e "error" --color=red file.txt

Options

Examples

Display a file:

see README.md

Show lines 0-10 with line numbers:

see -n -l 0:10 README.md

Highlight errors and warnings in log files:

see -e "error" -e "warning" --color=red --bold log.txt

Find TODO items in source code:

see -e "TODO" -e "FIXME" --color=yellow src/main.py

Preview last 20 lines of a file:

see -l -20: large_file.log

Read from stdin:

echo "Hello, World!" | see
cat file.txt | see -e "important"
ls -la | see -e ".py"

Installation

Build from source

git clone https://github.com/pynosaur/see.git
cd see
bazel build //:see_bin
cp bazel-bin/see ~/.local/bin/  # Or anywhere in your PATH

Development

# Run directly with Python
python app/main.py file.txt

# Run unit tests
python test/test_main.py

# Run integration tests (matches CI - run before committing)
python test/test_integration.py

# Run all tests
python -m unittest discover -s test -v