1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

verzeichnis voller textdateien zu einer datei zusammenfügen

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von ran2, 28.01.09.

  1. ran2

    ran2 Jamba

    Dabei seit:
    15.11.05
    Beiträge:
    59
    Hallo zusammen.. gibt es die möglichkeit einfach per shell befehl den inhalt aller textdateien in eines verzeichnis in eine einzige textdatei zu speichern.

    nehme auch ein gerne ein tool wenn das den zweck erfüllt. Ich könnte es mir ansonsten vielleicht mit php recht umständlich zusammenreimen. Doch ich bin mir sicher ihr kennt eine bessere lösung ;)

    besten dank schonmal
     
  2. Goglo

    Goglo Querina

    Dabei seit:
    08.10.08
    Beiträge:
    180
    Hilft da "cd das_verzeichnis;cat * >/tmp/alle_files_zusammen" nicht? Oder sind ausser den Textdateien noch andere in dem Verzeichnis bzw. möchtest Du die Reihenfolge anders als alphabetisch haben?
     
  3. ran2

    ran2 Jamba

    Dabei seit:
    15.11.05
    Beiträge:
    59
    hehe, danke. das hilft schon mal. ne in dem verzeichnis ist jetzt nix anderes drinne..
    habs ganz einfach ohne sub verzeichnis mit cat * >alle_files_zusammen.txt
    hinbekommen, nur das problem ist, irgendwie sollte das schon irgendwie getrennt sein, einen \r zeilenumbruch oder so wäre toll...
     
  4. Goglo

    Goglo Querina

    Dabei seit:
    08.10.08
    Beiträge:
    180
    Dann hier mal ausführlicher:

    for i in *; do echo "/* $i */"; cat $i; done>/tmp/myfile

    ergibt:
    Code:
    /* f1 */
    ajdfkla jadsflj jadfkl
    /* f2 */
    euwrio uqweoir uweior
    mit f1 = ajdfkla jadsflj jadfkl
    und f2 = euwrio uqweoir uweior
     
    #4 Goglo, 28.01.09
    Zuletzt bearbeitet: 28.01.09
  5. ran2

    ran2 Jamba

    Dabei seit:
    15.11.05
    Beiträge:
    59
    jau das funzt schon gut, hat ne weile gedauert bis ich gecheckt habe, dass man nicht alles ins gleiche verzeichnis tun darf und dass es mit subfolder so auch nicht geht. aber jetzt tut es, bzw. jetzt habe ich es verstanden :) Vielen dank.

    Einen Zeilenumbruch nach dem inhalt der Textfile macht es leider nicht, aber das ist nur ein schönheitsfehler schliesslich gibts ja s&r im texteditor.

    danke!!
     
  6. Goglo

    Goglo Querina

    Dabei seit:
    08.10.08
    Beiträge:
    180
    Dann ersetz' doch das "/*" $i "*/", was der echo ausgibt, einfach durch einen das was Du willst oder halt durch gar nix um nur einen linefeed zu erzeugen. Wenn's rekursiv (deshalb nun "find" anstelle von "*") alle normalen Dateien (type f) aller subfolder zusammenfassen soll, dann hilft:

    find . -type f -exec sh -c "echo && cat {}" ";" >/tmp/myfile

    Ich habe (wieder) ">/tmp/myfile" und nicht nur ">myfile" genommen, weil das hoffentlich gerade nicht im aktuellen Verzeichnis liegt und somit "ausser Reichweite" ist.
     
    #6 Goglo, 29.01.09
    Zuletzt bearbeitet: 29.01.09
  7. ran2

    ran2 Jamba

    Dabei seit:
    15.11.05
    Beiträge:
    59
    jau das war clever gedacht. danke, ausserhalb reicht für meine zwecke vollkommen, brauch eh nur den linefeed. vielen dank auf jeden fall, hat mir sehr geholfen :)
     

Diese Seite empfehlen