Mehrere Textdateien, _+ Dateinamen_, zu einer einzigen Textdatei zusammenfassen

Mehrere Textdateien, _+ Dateinamen_, zu einer einzigen Textdatei zusammenfassen

Ich möchte eine Handvoll Textdateien kombinieren, aber mit Titeln (EDIT: Dateinamen). Idealerweise so etwas wie

* a filename 
contents of file
... 
* another filename 
contents of file 
... 

etc... 

Ich verwende Windows (nicht DOS), habe aber Zugriff auf Powershell, Pandoc, Emacs, Cygwin oder alles andere, was Sie empfehlen. (Ich bin offensichtlich ein Neuling, der den Org-Modus ausprobiert.)

Ich kann sie alle problemlos in einem Ordner ablegen. Aber ich möchte es vermeiden, den Namen jeder Datei einzugeben. Wenn eine Bat-Datei empfohlen wird, habe ich noch nie eine verwendet, bin aber bereit, es zu lernen.

Antwort1

Ich bin sicher, dass es etwas Clevereres gibt, aber hier ist ein Powershell-Skript, das alle Dateien kombiniert:

$files = (dir *.txt)
$outfile = "out.txt"

$files | %{
    $_.FullName | Add-Content $outfile
    Get-Content $_.FullName | Add-Content $outfile
}

Ist es effizient? Nicht besonders … aber zur Not funktioniert es.

Antwort2

Inspiriert von der Struktur von Mitchs Skript habe ich eine Version für Unix-basierte Umgebungen wie GNU/Linux und OS X geschrieben:

find -regex '.*\.\(docx?\|org\|rtf\|te?xt\)$' | while read file
do
    echo "* $file" >> target-file.org
    cat "$file" | pandoc -t org >> target-file.org
done

(Wenn Sie nicht installieren möchten pandoc, entfernen Sie einfach das Pipe-Zeichen und den Befehl | pandoc -t org.)

Dieses Skript findet alle Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen, die die beschriebenen Dateierweiterungen ( .docxusw.) haben.

Wenn die Liste beispielsweise fileA.textund fileB.rtfim Unterverzeichnis enthält subd/, targetfile.orgerhalten Sie Zeilen wie:

* ./subd/fileA.text
<fileA's contents converted to an org file by pandoc>
* ./subd/fileB.rtf
<fileB's contents converted to an org file by pandoc>

Ich denke, dies hinterlässt target-file.orgeinen ziemlich guten Zustand für Verbesserungen innerhalb von Emacs, ohne dass das Skript zu kompliziert wird. (Besonders, wenn Sie den pandocSchritt einschließen.)

verwandte Informationen