GNU/Linux >> Tutoriales Linux >  >> Linux

Convierta la salida ls en csv

Si no te importan los espacios en la fecha:

$ find . -ls | tr -s ' ' ,

Si te preocupan esos espacios:

$ find . -ls | awk '{printf( "%s,%s,%s,%s,%s,%s,%s,%s %s %s,%s\n", $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11 )}'

Ninguno de estos funcionará si sus nombres de archivo contienen espacios en blanco. Como un truco para lidiar con los espacios en el nombre del archivo, podría intentar:

 ... | sed 's/,/ /8g'

para deshacerse de todas menos las primeras 8 comas (suponiendo que su sed admite el 8g no estándar como lo hace gnu sed). Por supuesto, esto no se ocupará de las comas en el nombre del archivo.


Es un poco largo escribirlo en la línea de comandos, pero conserva correctamente los espacios en el nombre del archivo (¡y también lo cita!)

find . -ls | python -c '
import sys
for line in sys.stdin:
    r = line.strip("\n").split(None, 10)
    fn = r.pop()
    print ",".join(r) + ",\"" + fn.replace("\"", "\"\"") + "\""
'

Linux
  1. ¿División de la salida en nuevas líneas?

  2. ¿Convertir un enlace duro en un enlace simbólico?

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

  4. Combinar/convertir múltiples archivos PDF en un solo PDF

  5. convertir la salida de bash `ls` a una matriz json

Convierta su instalación de Windows en una VM en Linux

Cómo convertir imágenes a formato ASCII en Linux

Cómo convertir xlsx a formato CSV en Linux

Cómo importar datos en Apache Solr

¿Cómo almacenar la salida del comando en una matriz en Ansible?

Cómo convertir un archivo TAR en un archivo ISO