Skip to content

Output Formats

loq supports 14+ output formats for exporting query results.

Format Overview

FormatFlagDescriptionRequires File
CSV-o:CSVComma-separated values (default)No
TSV-o:TSVTab-separated valuesNo
JSON-o:JSONJSON objects (NDJSON)No
XML-o:XMLXML documentNo
DATAGRID-o:DATAGRIDFormatted ASCII tableNo
SQLite-o:SQLITESQLite databaseYes
PostgreSQL-o:POSTGRESQLPostgreSQL databaseConfig
MySQL-o:MYSQLMySQL databaseConfig
Chart-o:CHARTPNG/SVG chartsYes
CloudWatch-o:CLOUDWATCHAWS CloudWatch LogsConfig
IIS-o:IISIIS native log formatNo
Template-o:TPLCustom templatesTemplate
W3C-o:W3CW3C extended log formatNo
NAT-o:NATNative binary formatYes
SYSLOG-o:SYSLOGSyslog UDP/TCPConfig

Specifying Output Format

Use the -o:FORMAT flag:

bash
# JSON output
loq -o:JSON "SELECT * FROM data.csv"

# XML output
loq -o:XML "SELECT * FROM data.csv"

# CSV is default
loq "SELECT * FROM data.csv"

Output to File

Use --ofile to write to a file:

bash
loq -o:CSV --ofile:output.csv "SELECT * FROM data.csv"
loq -o:JSON --ofile:output.json "SELECT * FROM data.csv"

Without --ofile, output goes to stdout.

Format Aliases

CanonicalAliases
DATAGRIDTABLE, GRID
IISIISNATIVE
JSONNDJSON
SQLITESQL
TEMPLATETPL

Quick Examples

CSV (Default)

bash
loq "SELECT name, age FROM users.csv"

Output:

csv
name,age
Alice,32
Bob,28

JSON

bash
loq -o:JSON "SELECT name, age FROM users.csv"

Output:

json
{"name":"Alice","age":32}
{"name":"Bob","age":28}

DATAGRID (Table)

bash
loq -o:DATAGRID "SELECT name, age FROM users.csv"

Output:

+-------+-----+
| name  | age |
+-------+-----+
| Alice | 32  |
| Bob   | 28  |
+-------+-----+

XML

bash
loq -o:XML "SELECT name, age FROM users.csv"

Output:

xml
<?xml version="1.0" encoding="UTF-8"?>
<results>
  <row>
    <name>Alice</name>
    <age>32</age>
  </row>
  <row>
    <name>Bob</name>
    <age>28</age>
  </row>
</results>

SQLite

bash
loq -o:SQLITE --ofile:output.db "SELECT * FROM users.csv"

IIS

bash
loq -o:IIS "SELECT c-ip, cs-method, cs-uri-stem, sc-status FROM access.log"

Output:

192.168.1.1, GET, /index.html, 200,
192.168.1.2, POST, /api/data, 201,

Chart

bash
loq -o:CHART -chartType:Bar --ofile:chart.png \
          "SELECT status, COUNT(*) FROM logs.csv GROUP BY status"

Common Options

Headers

bash
# Without headers
loq -o:CSV -headers:OFF "SELECT * FROM data.csv"

Output Separator

bash
# Pipe-delimited output
loq -o:CSV -oSeparator:"|" "SELECT * FROM data.csv"

Quiet Mode

bash
# Suppress statistics
loq -q:ON "SELECT * FROM data.csv"

Statistics

bash
# Show execution statistics
loq -stats:ON "SELECT * FROM data.csv"

Use Cases

Data Export

bash
# CSV for spreadsheets
loq -o:CSV --ofile:report.csv "SELECT * FROM logs.csv WHERE status = 'error'"

# JSON for APIs
loq -o:JSON --ofile:data.json "SELECT * FROM users.csv"

# Parquet for analytics
loq -o:PARQUET --ofile:data.parquet "SELECT * FROM logs.csv"

Database Loading

bash
# SQLite for analysis
loq -o:SQLITE --ofile:analysis.db "SELECT * FROM logs.csv"

# PostgreSQL for production
loq -o:POSTGRESQL --connection:"host=localhost dbname=mydb" \
          --otable:logs "SELECT * FROM logs.csv"

Visualization

bash
# Bar chart
loq -o:CHART -chartType:Bar --ofile:chart.png \
          "SELECT category, COUNT(*) FROM data.csv GROUP BY category"

# Line chart
loq -o:CHART -chartType:Line --ofile:trend.png \
          "SELECT date, value FROM metrics.csv ORDER BY date"

Monitoring

bash
# Send to CloudWatch
loq -o:CLOUDWATCH --log-group:/app/logs \
          "SELECT * FROM errors.csv WHERE level = 'error'"

# Send to syslog
loq -o:SYSLOG --host:logserver --port:514 \
          "SELECT message FROM app.log WHERE severity <= 3"

Custom Output

bash
# Template-based output
loq -o:TPL --tpl:template.html "SELECT * FROM data.csv"

Pipeline Integration

Unix Pipes

bash
# Pipe to other tools
loq "SELECT * FROM data.csv" | grep error

# Pipe to jq for JSON processing
loq -o:JSON "SELECT * FROM data.csv" | jq '.name'

Chained Queries

bash
# First query to file, second query from file
loq -o:CSV --ofile:temp.csv "SELECT * FROM data.csv WHERE status = 'active'"
loq "SELECT * FROM temp.csv ORDER BY date"

See Also

All rights reserved.