combinar varios archivos de texto, _+ nombres de archivo_, en un solo archivo de texto

combinar varios archivos de texto, _+ nombres de archivo_, en un solo archivo de texto

Me gustaría combinar un puñado de archivos de texto, pero con títulos (EDITAR: nombres de archivos). Lo ideal es algo como

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

etc... 

Estoy en Windows (no en DOS), pero tengo acceso a PowerShell, Pandoc, Emacs, Cygwin o cualquier otra cosa que me recomiendes. (Claramente soy un novato probando el modo organización).

Puedo ponerlos todos fácilmente en una carpeta. Pero me gustaría evitar escribir el nombre de cada archivo. Si se recomienda un archivo bat, nunca lo he usado, pero estoy dispuesto a aprender.

Respuesta1

Estoy seguro de que hay algo más inteligente, pero aquí hay un script de PowerShell que combinará todos los archivos:

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

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

¿Es eficiente? No mucho... pero funcionará en caso de apuro.

Respuesta2

Inspirándome en la estructura del script de Mitch, escribí una versión para entornos basados ​​en Unix, como GNU/Linux y OS X:

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

(Si no desea instalar pandoc, simplemente elimine la tubería y el comando | pandoc -t org).

Este script encontrará todos los archivos en el directorio actual y sus subdirectorios que tengan las extensiones de archivo descritas ( .docx, etc.).

Por ejemplo, si la lista incluye fileA.texty fileB.rtfen el subdirectorio subd/, targetfile.orgrecibirá líneas como:

* ./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>

Creo que esto dejará target-file.orgen bastante buen estado para mejorar desde Emacs, sin que el script sea demasiado complicado. (Especialmente si incluye el pandocpaso).

información relacionada