GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Konvertieren Sie die ls-Ausgabe in csv

Wenn Ihnen die Leerzeichen im Datum egal sind:

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

Wenn Sie sich für diese Leerzeichen interessieren:

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

Beides funktioniert nicht, wenn Ihre Dateinamen Leerzeichen enthalten. Als Hack, um mit Leerzeichen im Dateinamen umzugehen, könnten Sie versuchen:

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

um alle bis auf die ersten 8 Kommas loszuwerden (vorausgesetzt, Ihr sed unterstützt den nicht standardmäßigen 8g Option wie gnu sed). Kommas im Dateinamen werden natürlich nicht behandelt.


Es ist ein bisschen lang, es in die Befehlszeile einzugeben, aber es behält Leerzeichen im Dateinamen richtig bei (und setzt ihn auch in Anführungszeichen!)

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. Konvertieren Sie den privaten Openssh-Schlüssel in den privaten Ssh2-Schlüssel?

  2. am schnellsten konvertieren tabulatorgetrennte datei in csv in linux

  3. Mehrere PDF-Dateien in ein PDF zusammenführen / konvertieren

  4. Konvertieren Sie die Ausgabe von bash `ls` in ein json-Array

  5. Wandeln Sie eine Ausgabe in einen String um

Konvertieren Sie Ihre Windows-Installation in eine VM unter Linux

So konvertieren Sie Bilder in das ASCII-Format unter Linux

So konvertieren Sie xlsx in das CSV-Format unter Linux

So importieren Sie Daten in Apache Solr

Bash erfasst die Ausgabe von awk in ein Array

Konvertieren Sie ein Graustufenbild in ein Alphakanalbild in der Unix-Shell