Herramienta de línea de comandos (CLI) para leer, filtrar, ordenar y exportar archivos CSV, desarrollada en Java.
# Importar y mostrar todo el contenido
java -jar target/csv-cli-tool-1.0-SNAPSHOT.jar import -i datos.csv
# Filtrar por columna
java -jar target/csv-cli-tool-1.0-SNAPSHOT.jar import -i datos.csv -f ciudad -v Madrid
# Ordenar por columna
java -jar target/csv-cli-tool-1.0-SNAPSHOT.jar import -i datos.csv -s nombre
# Exportar resultado a otro CSV
java -jar target/csv-cli-tool-1.0-SNAPSHOT.jar export -i datos.csv -o resultado.csv -f ciudad -v Madrid- Leer y mostrar el contenido de un archivo CSV por consola
- Filtrar filas por el valor de una columna (sin distinguir mayúsculas)
- Ordenar filas alfabéticamente por una columna
- Exportar el resultado procesado a un nuevo archivo CSV
- Mensajes de error, advertencia y éxito con colores ANSI
- Soporte de campos entrecomillados, BOM UTF-8 y saltos de línea dentro de campos
src/
└── main/java/com/pier0del/csvcli/
├── Main.java # Punto de entrada
├── cli/
│ ├── AppCommands.java # Comando raíz (csvtool)
│ ├── ImportCommand.java # Subcomando import
│ ├── ExportCommand.java # Subcomando export
│ └── ConsolePrinter.java # Salida por consola con colores
├── io/
│ ├── CsvReader.java # Lector CSV con soporte de comillas
│ ├── CsvWriter.java # Escritor CSV
│ └── FileValidator.java # Validación de rutas y extensiones
├── model/
│ ├── CsvRow.java # Fila del CSV como mapa columna→valor
│ └── ProcessingResult.java # Resultado inmutable de cada operación
├── service/
│ ├── CsvTransformationService.java # Filtrado y ordenación
│ └── DataConverter.java # Conversión y normalización de valores
└── exception/
├── CsvException.java # Excepción base
├── ColumnNotFoundException.java # Columna no encontrada
└── InvalidFormatException.java # CSV mal formado
- Java 17
- Maven
- picocli 4.7.5 — framework para CLIs en Java
- JUnit 5 — testing
- Java 17 o superior
- Maven 3.6 o superior
# 1. Clona el repositorio
git clone https://github.com/pier0del/csv-cli-tool.git
cd csv-cli-tool
# 2. Compila y genera el JAR
mvn package
# 3. Ejecuta
java -jar target/csv-cli-tool-1.0-SNAPSHOT.jar --helpLee y muestra el contenido de un CSV por consola.
java -jar target/csv-cli-tool-1.0-SNAPSHOT.jar import [opciones]
Opciones:
-i, --input Ruta del archivo CSV de entrada (obligatorio)
-f, --filter Columna por la que filtrar
-v, --value Valor exacto que debe tener la columna
-s, --sort Columna por la que ordenar alfabéticamente
-h, --help Mostrar ayuda
Lee un CSV, aplica filtros y ordenación, y guarda el resultado en otro archivo.
java -jar target/csv-cli-tool-1.0-SNAPSHOT.jar export [opciones]
Opciones:
-i, --input Ruta del archivo CSV de origen (obligatorio)
-o, --output Ruta del archivo CSV de destino (obligatorio)
-f, --filter Columna por la que filtrar
-v, --value Valor exacto que debe tener la columna
-s, --sort Columna por la que ordenar
-h, --help Mostrar ayuda
nombre,ciudad,edad
Ana,Madrid,25
Juan,Barcelona,30
Maria,Madrid,22
Carlos,Valencia,28# Filtrar personas de Madrid y ordenar por nombre
java -jar target/csv-cli-tool-1.0-SNAPSHOT.jar import -i datos.csv -f ciudad -v Madrid -s nombre
# Exportar resultado
java -jar target/csv-cli-tool-1.0-SNAPSHOT.jar export -i datos.csv -o madrid.csv -f ciudad -v Madrid -s nombreMIT License — ver fichero LICENSE