Sqawk Sqawk is an SQL-based command-line tool for processing delimiter-separated files (CSV, TSV, etc.), inspired by the classic awk command. It loads data into in-memory tables, executes SQL queries against these tables, and writes the results back to the console or files. Features Powerful SQL Query Engine Support for SELECT, INSERT, UPDATE, and DELETE operations WHERE clause filtering with comparison operators DISTINCT keyword for removing duplicate rows ORDER BY for sorting results (ASC/DESC) Column aliases with the AS keyword Aggregate functions (COUNT, SUM, AVG, MIN, MAX) GROUP BY for data aggregation Multi-Table Operations Cross joins between tables INNER JOIN with ON conditions for precise join criteria Support for joining multiple tables Table-qualified column names Smart Data Handling Automatic type inference (Integer, Float, Boolean, String) Type coercion for comparisons Null value support File Format Support Process CSV, TSV, and custom-delimited files Custom field separator support with -F option (like awk) Fast in-memory execution Process multiple files in a single command Table name customization Chain multiple SQL statements Safe Operation Doesn't modify files without explicit request (--write flag) Only writes back tables that were modified Verbose mode for operation transparency Installation cargo install sqawk Usage Basic SELECT query sqawk -s " SELECT * FROM data " data.csv This loads data.csv into an in-memory table called "data" and performs a SELECT query. Filtering data with WHERE clause sqawk -s " SELECT * FROM employees WHERE salary > 50000 " employees.csv Updating rows sqawk -s " UPDATE data SET status = 'active' WHERE id = 5 " data.csv --write This updates the status field to 'active' for rows with id = 5 and saves the changes back to data.csv. Deleting rows sqawk -s " DELETE FROM data WHERE id = 5 " data.csv --write This removes rows with id = 5 and saves the changes back to data.csv. Multiple operations sqawk -s " UPDATE data SET status...
First seen: 2025-05-26 22:54
Last seen: 2025-05-27 02:54