GNU/Linux >> Linux Esercitazione >  >> Linux

il modo più veloce per convertire file delimitati da tabulazioni in csv in linux

Se tutto ciò che devi fare è tradurre tutti i caratteri di tabulazione in caratteri virgola, tr è probabilmente la strada da percorrere.

Lo spazio vuoto qui è una scheda letterale:

$ echo "hello   world" | tr "\\t" ","
hello,world

Ovviamente, se hai delle schede incorporate all'interno di stringhe letterali nel file, questo tradurrà erroneamente anche quelle; ma le schede letterali incorporate sarebbero piuttosto rare.


perl -lpe 's/"/""/g; s/^|$/"/g; s/\t/","/g' < input.tab > output.csv

Perl è generalmente più veloce in questo genere di cose rispetto a sed, awk e Python.


Se sei preoccupato per le virgole incorporate, dovrai utilizzare un metodo leggermente più intelligente. Ecco uno script Python che prende le righe TSV dallo stdin e scrive le righe CSV nello stdout:

import sys
import csv

tabin = csv.reader(sys.stdin, dialect=csv.excel_tab)
commaout = csv.writer(sys.stdout, dialect=csv.excel)
for row in tabin:
  commaout.writerow(row)

Eseguilo da una shell come segue:

python script.py < input.tsv > output.csv

  • Se vuoi convertire l'intero file tsv in un file csv:

    $ cat data.tsv | tr "\\t" "," > data.csv
    
  • Se vuoi omettere alcuni campi:

    $ cat data.tsv | cut -f1,2,3 | tr "\\t" "," > data.csv
    

    Il comando precedente convertirà il file data.tsv in un file data.csv contenente solo i primi tre campi.


Linux
  1. Come convertire file in codifica UTF-8 in Linux

  2. Un modo semplice per nascondere file e directory in Linux

  3. csplit:un modo migliore per dividere il file in Linux in base al suo contenuto

  4. Il modo più efficiente per copiare un file in Linux

  5. Come posso convertire un'immagine disco Linux in un file sparse?

Comando touch di Linux

Comando Cat in Linux

Come convertire l'immagine della fotocamera Raw in JPEG in Linux

Come convertire xlsx in formato CSV in Linux

Il modo più veloce per contare i file in modo ricorsivo in Linux

Come convertire un file .pem in un file .ppk su Windows e Linux