GNU/Linux >> Tutoriales Linux >  >> Linux

forma más rápida de convertir archivos delimitados por tabulaciones a csv en linux

Si todo lo que necesita hacer es traducir todos los caracteres de tabulación a caracteres de coma, tr es probablemente el camino a seguir.

El espacio en blanco aquí es una pestaña literal:

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

Por supuesto, si tiene pestañas incrustadas dentro de cadenas literales en el archivo, esto también las traducirá incorrectamente; pero las pestañas literales incrustadas serían bastante poco comunes.


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

Perl es generalmente más rápido en este tipo de cosas que sed, awk y Python.


Si le preocupan las comas incrustadas, deberá usar un método un poco más inteligente. Aquí hay una secuencia de comandos de Python que toma líneas TSV de stdin y escribe líneas CSV en 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)

Ejecútelo desde un shell de la siguiente manera:

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

  • Si desea convertir todo el archivo tsv en un archivo csv:

    $ cat data.tsv | tr "\\t" "," > data.csv
    
  • Si desea omitir algunos campos:

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

    El comando anterior convertirá el archivo data.tsv en un archivo data.csv que contiene solo los primeros tres campos.


Linux
  1. Linux – ¿Todo es un archivo?

  2. csplit:una mejor manera de dividir archivos en Linux según su contenido

  3. La forma más eficiente de copiar un archivo en Linux

  4. Lectura de un archivo CSV con consultas SQL desde el shell de Linux

  5. La forma más rápida de obtener tiempo de actividad del sistema en Python en Linux

Comando táctil de Linux

Comando Cat en Linux

Cómo convertir imágenes de cámara sin procesar a JPEG en Linux

Cómo convertir xlsx a formato CSV en Linux

La forma más rápida de contar archivos recursivamente en Linux

Cómo convertir un archivo .pem a un archivo .ppk en Windows y Linux