GNU/Linux >> Tutoriels Linux >  >> Linux

Convertir la sortie ls en csv

Si vous ne vous souciez pas des espaces dans la date :

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

Si vous vous souciez de ces espaces :

$ 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 )}'

Aucun de ceux-ci ne fonctionnera si vos noms de fichiers contiennent des espaces. Pour gérer les espaces dans le nom de fichier, vous pouvez essayer :

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

pour se débarrasser de toutes sauf les 8 premières virgules (en supposant que votre sed prend en charge le 8g non standard comme le fait gnu sed). Bien sûr, cela ne traitera pas des virgules dans le nom de fichier.


C'est un peu long à taper sur la ligne de commande, mais cela préserve correctement les espaces dans le nom de fichier (et le cite aussi !)

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. Convertir la sortie de la commande Tree au format Json ?

  2. moyen le plus rapide de convertir un fichier délimité par des tabulations en csv sous Linux

  3. Fusionner/convertir plusieurs fichiers PDF en un seul PDF

  4. Convertir une sortie en chaîne

  5. Convertir .txt en .csv dans le shell

Convertissez votre installation Windows en VM sous Linux

Comment convertir des images au format ASCII sous Linux

Comment convertir xlsx au format CSV sous Linux

Comment importer des données dans Apache Solr

Convertir une image en niveaux de gris en image de canal alpha dans le shell Unix

Comment convertir un fichier TAR en un fichier ISO