GNU/Linux >> Linux Esercitazione >  >> Linux

Visualizza file tabulare come CSV dalla riga di comando

Puoi anche usare questo:

column -s, -t < somefile.csv | less -#2 -N -S

column è un programma unix standard molto comodo:trova la larghezza appropriata di ogni colonna e visualizza il testo come una tabella ben formattata.

Nota:ogni volta che hai campi vuoti, devi inserire una sorta di segnaposto, altrimenti la colonna viene unita alle colonne successive. L'esempio seguente mostra come utilizzare sed per inserire un segnaposto:

$ 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

Nota che la sostituzione di ,, per , , si fa due volte. Se lo fai solo una volta, 1,,,4 diventerà 1, ,,4 poiché la seconda virgola è già abbinata.


Puoi installare csvtool (su Ubuntu) tramite

sudo apt-get install csvtool

e poi esegui:

csvtool readable filename | view -

Questo lo renderà carino e carino all'interno di un'istanza vim di sola lettura, anche se hai alcune celle con valori molto lunghi.


Dai un'occhiata a csvkit. Fornisce una serie di strumenti che aderiscono alla filosofia UNIX (nel senso che sono piccoli, semplici, con un unico scopo e possono essere combinati).

Ecco un esempio che estrae le dieci città più popolate della Germania dal database gratuito Maxmind World Cities e visualizza il risultato in un formato leggibile dalla console:

$ 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 è indipendente dalla piattaforma perché è scritto in Python.


Linux
  1. Come visualizzare le dimensioni/i dettagli del file dal comando ls in Unix

  2. Importazione PostgreSQL CSV dalla riga di comando

  3. Come posso aprire un file in sola lettura dalla riga di comando con emacs/vi/vim

  4. Come caricare un file tramite FTP dalla riga di comando?

  5. Alternativa alla riga di comando SSH da Ubuntu

Copia un file in più directory dalla riga di comando su Linux

Come inviare un'e-mail con allegato file dalla riga di comando

Visualizza il contenuto di un file nella riga di comando di Linux

Come rimuovere le righe da un file usando il comando Sed

5 comandi per visualizzare il contenuto di un file nella riga di comando di Linux

Come controllare l'utilizzo di Inode da cPanel e dalla riga di comando?