Przeglądarka CSV z linii poleceń? [zamknięte]
Ktoś zna przeglądarkę CSV z linii poleceń dla Linuksa/OS X? Myślę o czymś w rodzaju less
, ale to rozdziela kolumny w bardziej czytelny sposób. (Byłbym w porządku z otwarciem go z OpenOffice Calc lub Excel, ale to jest zbyt przytłaczające dla po prostu patrząc na dane, jak trzeba.) Przewijanie poziome i pionowe byłoby świetne.
19 answers
Możesz również użyć tego:
column -s, -t < somefile.csv | less -#2 -N -S
column
jest standardowym programem uniksowym, który jest bardzo wygodny-znajduje odpowiednią szerokość każdej kolumny i wyświetla tekst jako ładnie sformatowaną tabelę.
Uwaga: Gdy masz puste pola, musisz umieścić w nich jakiś symbol zastępczy, w przeciwnym razie kolumna zostanie scalona z następującymi kolumnami. Poniższy przykład pokazuje, jak użyć sed
, aby wstawić symbol zastępczy:
$ cat data.csv
1,2,3,4,5
1,,,,5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1 2 3 4 5
1 5
$ cat data.csv
1,2,3,4,5
1,,,,5
$ column -s, -t < data.csv
1 2 3 4 5
1 5
$ sed 's/,,/, ,/g;s/,,/, ,/g' data.csv | column -s, -t
1 2 3 4 5
1 5
Zauważ, że zastąpienie ,,
dla , ,
jest zrobione dwa razy. Jeśli zrobisz to tylko raz, 1,,,4
stanie się 1, ,,4
, ponieważ drugi przecinek jest już dopasowany.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-27 11:30:28
Możesz zainstalować csvtool
(na Ubuntu) poprzez
sudo apt-get install csvtool
A następnie uruchom:
csvtool readable filename | view -
To sprawi, że będzie to ładne i ładne wewnątrz instancji Vima tylko do odczytu, nawet jeśli masz kilka komórek o bardzo długich wartościach.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-02 07:39:38
Spójrz na csvkit . Dostarcza zestaw narzędzi, które są zgodne z filozofią Uniksa (co oznacza, że są małe, proste, jednokierunkowe i mogą być łączone).
Oto przykład, który wyodrębnia dziesięć najbardziej zaludnionych miast w Niemczech z darmowej bazy danych Maxmind World Cities i wyświetla wynik w formacie czytelnym dla konsoli:
$ csvgrep -e iso-8859-1 -c 1 -m "de" worldcitiespop | csvgrep -c 5 -r "\d+"
| csvsort -r -c 5 -l | csvcut -c 1,2,4,6 | head -n 11 | csvlook
-----------------------------------------------------
| line_number | Country | AccentCity | Population |
-----------------------------------------------------
| 1 | de | Berlin | 3398362 |
| 2 | de | Hamburg | 1733846 |
| 3 | de | Munich | 1246133 |
| 4 | de | Cologne | 968823 |
| 5 | de | Frankfurt | 648034 |
| 6 | de | Dortmund | 594255 |
| 7 | de | Stuttgart | 591688 |
| 8 | de | Düsseldorf | 577139 |
| 9 | de | Essen | 576914 |
| 10 | de | Bremen | 546429 |
-----------------------------------------------------
Csvkit jest niezależny od platformy, ponieważ jest napisany w Pythonie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-15 15:42:02
Tabview: lightweight python przeklina wiersza poleceń przeglądarkę plików CSV (a także inne tabelaryczne dane Pythona, takie jak lista list) jest tutaj na Github
Cechy:
- Python 2.7+, 3.x
- obsługa Unicode
- widok podobny do arkusza kalkulacyjnego do łatwej wizualizacji danych tabelarycznych
- vim-like navigation (h, j, k, l, g (Góra), G (dół), 12g Goto line 12, m-mark, '- goto mark, etc.)
- przełącza stały wiersz nagłówka
- dynamiczna zmiana rozmiaru szerokości kolumn i gap
- Sortuj rosnąco lub malejąco według dowolnej kolumny. Sortowanie w kolejności 'naturalnej' dla wartości liczbowych.
- Wyszukiwanie pełnotekstowe, N I p do przełączania między wynikami wyszukiwania
- 'Enter', aby wyświetlić pełną zawartość komórki
- przenieś zawartość komórki do schowka
- F1 czy ? dla skrótów klawiszowych
- może również używać z linii poleceń Pythona do wizualizacji dowolnych danych tabelarycznych (np. list-of-lists)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-19 14:35:20
Jeśli jesteś vimmer, użyj CSV plugin , który jest juuust beautiful.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-28 16:13:57
Pakiet nodejs tecfu/TTY-table można zainstalować globalnie, aby to zrobić:
apt-get install nodejs
npm i -g tty-table
cat data.csv | tty-table
Może również obsługiwać strumienie.
Aby uzyskać więcej informacji, zobacz docs for terminal use here .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-01 01:04:41
Mój projekt FOSS CSVfix pozwala na wyświetlanie plików CSV w formacie tabeli "ASCII art".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-13 17:36:27
Odpowiedź Ofriego daje Ci wszystko, o co prosiłeś. Ale.. jeśli nie chcesz zapamiętać komendy, możesz dodać ją do swojego~/.bashrc (lub odpowiednik):
csview()
{
local file="$1"
sed "s/,/\t/g" "$file" | less -S
}
Jest to dokładnie to samo co odpowiedź Ofri, z wyjątkiem tego, że owinąłem ją w funkcję powłoki i używam opcji less -S
, aby zatrzymać owijanie linii(sprawia, że less
zachowuje się bardziej jak office/oocalc).
Otwórz nową powłokę (lub wpisz source ~/.bashrc
w bieżącej powłoce) i uruchom polecenie używając:
csview <filename>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-09 18:03:59
Xsv jest czymś więcej niż przeglądarką. Polecam go dla większości zadań CSV z linii poleceń, szczególnie w przypadku dużych zbiorów danych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-17 16:32:28
Długo korzystałem z odpowiedzi pisswillis.
csview()
{
local file="$1"
sed "s/,/\t/g" "$file" | less -S
}
Ale potem połączyłem jakiś kod, który znalazłem na http://chrisjean.com/2011/06/17/view-csv-data-from-the-command-line co mi działa lepiej:
csview()
{
local file="$1"
cat "$file" | sed -e 's/,,/, ,/g' | column -s, -t | less -#5 -N -S
}
Powodem, dla którego działa lepiej dla mnie, jest to, że lepiej radzi sobie z szerokimi kolumnami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-25 17:16:30
Oto (prawdopodobnie zbyt) prosta opcja:
sed "s/,/\t/g" filename.csv | less
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-09 17:12:50
tblless
w pakiecie Tabulator zawija polecenie unix column
, a także wyrównuje kolumny liczbowe.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-14 06:37:55
Używając TxtSushi możesz zrobić:
csvtopretty filename.csv | less -S
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-02 07:48:31
I wrote this csv_view.sh aby sformatować pliki CSV z linii poleceń, odczytuje cały plik, aby określić optymalną szerokość każdej kolumny (wymaga Perla, zakłada, że w polach nie ma przecinków, używa również less):
#!/bin/bash
perl -we '
sub max( @ ) {
my $max = shift;
map { $max = $_ if $_ > $max } @_;
return $max;
}
sub transpose( @ ) {
my @matrix = @_;
my $width = scalar @{ $matrix[ 0 ] };
my $height = scalar @matrix;
return map { my $x = $_; [ map { $matrix[ $_ ][ $x ] } 0 .. $height - 1 ] } 0 .. $width - 1;
}
# Read all lines, as arrays of fields
my @lines = map { s/\r?\n$//; [ split /,/ ] } ;
my $widths =
# Build a pack expression based on column lengths
join "",
# For each column get the longest length plus 1
map { 'A' . ( 1 + max map { length } @$_ ) }
# Get arrays of columns
transpose
@lines
;
# Format all lines with pack
map { print pack( $widths, @$_ ) . "\n" } @lines;
' $1 | less -NS
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-13 17:46:35
Kolejne wielofunkcyjne narzędzie do manipulacji CSV (i nie tylko): Miller . Z własnego opisu wynika, że jest to awk, sed, cut, join I sort dla danych indeksowanych nazwami, takich jak CSV, TSV i tabelaryczny JSON. (link do repozytorium github: https://github.com/johnkerl/miller )
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-17 10:06:49
Napisałem skrypt, viewtab , w Groovy właśnie w tym celu. Wywołujesz to tak:
viewtab filename.csv
Jest to w zasadzie super lekki arkusz kalkulacyjny, który można wywoływać z wiersza poleceń, obsługuje pliki CSV i tabulatory, potrafi odczytywać bardzo duże pliki Excel i liczby i jest bardzo szybki. Nie jest wierszem poleceń w sensie tekstowym, ale jest niezależny od platformy i prawdopodobnie będzie pasował do rachunku dla wielu osób szukających rozwiązania problemu szybkie sprawdzanie wielu lub dużych plików CSV podczas pracy w środowisku wiersza poleceń.
Skrypt i jak go zainstalować są opisane tutaj:
Http://bayesianconspiracy.blogspot.com/2012/06/quick-csvtab-file-viewer.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-05 20:27:13
Jest taki krótki skrypt wiersza poleceń w Pythonie: https://github.com/rgrp/csv2ascii/blob/master/csv2ascii.py
Po prostu pobierz i umieść na swojej ścieżce. Użycie jest jak
csv2ascii.py [options] csv-file-path
Konwersja pliku csv w csv-file-path
do postaci ascii zwracającej wynik na
stdout. If csv-file-path
= ' - ' then read from stdin.
Opcje:
-h, --help show this help message and exit -w WIDTH, --width=WIDTH Width of ascii output -c COLUMNS, --columns=COLUMNS Only display this number of columns
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-10 12:04:13
Stworzyłemtablify do tych (i innych) celów. Zainstaluj za pomocą
[sudo -H] pip3 install tablify
I
$ cat test.csv
Header1,Header2,Header3
Pizza,Artichoke dip,Bob's Special of the Day
BLT,Ham on rye with the works,
$ tablify test.csv
Header1 , Header2 , Header3
Pizza , Artichoke dip , Bob's Special of the Day
BLT , Ham on rye with the works ,
Działa również wtedy, gdy dane są oddzielone czymś innym niż przecinkami. Co najważniejsze, zachowuje ograniczniki, dzięki czemu można go również używać do stylizacji tabel ASCII bez poświęcania składni [Markdown, CSV,LaTeX].
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-13 10:58:26
Tabview jest naprawdę dobry. Pracował z plikami 200 + MB, które wyświetlały się ładnie, które były wadliwe z LibreOffice, a także wtyczką csv w gvim.
Wersja anakonda jest dostępna tutaj: https://anaconda.org/bioconda/tabview
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-18 14:48:01