Gostaria de combinar alguns arquivos de texto, mas com títulos (EDIT: nomes de arquivos). Idealmente, algo como
* a filename
contents of file
...
* another filename
contents of file
...
etc...
Estou no Windows (não no DOS), mas tenho acesso ao PowerShell, pandoc, emacs, cygwin ou qualquer outra coisa que você recomende. (Claramente sou um novato experimentando o modo organizacional.)
Posso facilmente colocá-los todos em uma pasta. Mas gostaria de evitar digitar o nome de cada arquivo. Se um arquivo bat for recomendado, nunca usei um, mas estou disposto a aprender.
Responder1
Tenho certeza de que há algo mais inteligente, mas aqui está um script do PowerShell que combinará todos os arquivos:
$files = (dir *.txt)
$outfile = "out.txt"
$files | %{
$_.FullName | Add-Content $outfile
Get-Content $_.FullName | Add-Content $outfile
}
É eficiente? Não muito... mas funcionará em apuros.
Responder2
Inspirado na estrutura do script de Mitch, escrevi uma versão para ambientes baseados em Unix, como GNU/Linux e 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
(Se você não quiser instalar pandoc
, simplesmente remova o pipe e comande, | pandoc -t org
.)
Este script encontrará todos os arquivos no diretório atual e seus subdiretórios que possuem extensões de arquivo conforme descrito ( .docx
, etc).
Por exemplo, se a lista incluir fileA.text
e fileB.rtf
no subdiretório subd/
, targetfile.org
receberá linhas 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>
Eu acho que isso vai deixar você target-file.org
em um estado muito bom para melhorar dentro do Emacs, sem que o script seja muito complicado. (Especialmente se você incluir a pandoc
etapa.)