Home

Awesome

csv-nix-tools

Build Status Coverage Status Coverity Scan Build Status

csv-nix-tools is a collection of tools for gathering and processing system information using CSV as an intermediate format.

Although CSV is in the name of the project and this format is used for information storage, it's not that critical aspect of this project.

What is more important is that it allows safe processing of structured data using *NIX-like philosophy by employing pipes and tools with familiar names (such as grep, sort, etc, see examples). "Safe" processing means that the handling of special characters, like new lines, is effort-less - it just works, without bothering users with hacks like IFS.

This project also solves the problem of combining data from multiple sources into a single stream (see the tables tutorial) and processing it in any way user wants to, including powerful SQL syntax, without leaving the shell.

Status

This project is in beta stage. Everything listed below is functional and works as documented. Currently, it builds and runs on Linux with glibc only, but portability patches are welcomed. Although the project has NIX in the name and many source tools are Unix or even Linux-specific, sane portability patches, even for non-Unix systems, will be accepted.

If you discover any issue in the project or a missing feature, don't hesitate to file an issue. Any feedback is welcomed.

Dependencies

On Debian-based distros you can install all dependencies by:

apt install build-essential cmake pkg-config flex bison libsqlite3-dev \
            libprocps-dev libncursesw5-dev libmnl-dev pandoc tmux

On Fedora-based distros you can install all dependencies by:

yum install gcc make glibc-devel cmake pkg-config flex bison sqlite-devel \
            procps-ng-devel ncurses-devel libmnl-devel pandoc tmux

Installation

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install

Available tools

Source:

Filtering/processing:

Sink:

Documentation

See the man pages.

Examples

See EXAMPLES

TODO

See TODO