Skip to content
Back to the catalog
Project grepToolingBeginnerBeta

Tu propio grep

Lee de stdin, filtra por patrón y respeta los códigos de salida. La puerta de entrada a las herramientas Unix.

Build it in your language

The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.

Guide language

The stage guides read in this language. Only languages this project is fully translated into show up here; the interface language does not change.

What this project is about

grep es la herramienta Unix perfecta: hace una cosa, la hace rápido y se combina con todo lo demás. Reconstruirla enseña tanto sobre filosofía de diseño como sobre código.

Construirás un clon capaz de buscar por patrón en stdin y en ficheros, con las banderas que de verdad usas (-i, -v, -n, -c, -r) y con el comportamiento correcto en lo que nadie mira pero todo el mundo depende: los códigos de salida.

Roadmap

7 stages across 3 phases. Every stage comes with its guide and its tests: you move on when they pass.

  1. Phase 12 stages

    Filtrar líneas

    Lee stdin, busca una cadena literal e imprime las coincidencias.

    1. 01Búsqueda literal
    2. 02stdin y código de salida
  2. Phase 23 stages

    Banderas y ficheros

    -i, -v, -n, -c, varios ficheros a la vez y códigos de salida correctos.

    1. 01Mayúsculas y minúsculas
    2. 02Invertir y numerar
    3. 03Conteo y varios archivos
  3. Phase 32 stages

    Patrones y recursión

    Clases de caracteres, anclas y búsqueda recursiva por directorios.

    1. 01Clases y anclas
    2. 02Recorrido recursivo

Before you start

Una herramienta de línea de comandos que filtra líneas por patrón: lectura de stdin y de ficheros, búsqueda literal y con expresiones regulares básicas, banderas de uso común, recursión por directorios, salida coloreada y códigos de salida compatibles con grep.

  • coding-agent
    Beta

    Build a Coding Agent

    Learn the core foundations of AI coding assistants from scratch: model basics, API key security, why use OpenRouter as a universal model router, tool schemas, and the autonomous ReAct loop.

    Beginner7 stages~6 hTooling
    agentopenrouterllm+3

    Python · TypeScript

  • git
    Beta

    Build your own Git

    Blobs, trees and commits. Discover that Git is a content-addressed object store, and little else.

    Advanced12 stages~18 hTooling
    hashingzlibdag+1

    Go · Python · Rust