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.text
y fileB.rtf
en el subdirectorio subd/
, targetfile.org
recibirá 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.org
en bastante buen estado para mejorar desde Emacs, sin que el script sea demasiado complicado. (Especialmente si incluye el pandoc
paso).