407 Stimmen

Anzeigen von Tabellendateien wie CSV über die Befehlszeile

Kennt jemand einen Befehlszeilen-CSV-Viewer für Linux/OS X? Ich denke da an etwas wie less aber dadurch werden die Spalten besser lesbar verteilt. (Ich hätte kein Problem damit, die Datei mit OpenOffice Calc oder Excel zu öffnen, aber das ist viel zu aufwendig für nur siehe Ich muss mir die Daten ansehen, wie ich sie brauche.) Ein horizontaler und vertikaler Bildlauf wäre toll.

28voto

user3751385 Punkte 3031

Das nodejs-Paket tecfu/tty-table kann global installiert werden, um genau dies zu tun:

apt-get install nodejs
npm i -g tty-table
cat data.csv | tty-table

tecfu/tty-table

Es kann auch Streams verarbeiten.

Weitere Informationen finden Sie in der Dokumente für die Verwendung von Terminals hier .

24voto

smartmic Punkte 581

xsv ist mehr als ein Zuschauer. Ich empfehle es für die meisten CSV-Aufgaben auf der Kommandozeile, vor allem wenn es um große Datensätze geht.

11voto

Tom Weiss Punkte 747

Ich habe lange Zeit die Antwort von pisswillis verwendet.

csview()
{
    local file="$1"
    sed "s/,/\t/g" "$file" | less -S
}

Aber dann kombinierte ich einen Code, den ich bei http://chrisjean.com/2011/06/17/view-csv-data-from-the-command-line was für mich besser funktioniert:

csview()
{
    local file="$1"
    cat "$file" | sed -e 's/,,/, ,/g' | column -s, -t | less -#5 -N -S
}

Der Grund, warum es für mich besser funktioniert, ist, dass es breite Spalten besser handhabt.

9voto

pisswillis Punkte 1529

Die Antwort von Ofri gibt Ihnen alles, was Sie wissen wollten. Aber wenn Sie sich den Befehl nicht merken wollen, können Sie dies zu Ihrer ~/.bashrc (oder gleichwertig) hinzufügen:

csview()
{
local file="$1"
sed "s/,/\t/g" "$file" | less -S
}

Dies ist genau dasselbe wie die Antwort von Ofri, außer dass ich es in eine Shell-Funktion verpackt habe und die less -S Option, um den Zeilenumbruch zu stoppen (macht less verhält sich eher wie ein Office/Ocalc).

Öffnen Sie eine neue Shell (oder geben Sie source ~/.bashrc in Ihrer aktuellen Shell) und führen Sie den Befehl mit aus:

csview <filename>

6voto

Ofri Raviv Punkte 23336

Hier ist eine (wahrscheinlich zu) einfache Möglichkeit:

sed "s/,/\t/g" filename.csv | less

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X