combina vários arquivos de texto, _ + filenames_, em um único arquivo de texto

2

Eu gostaria de combinar um punhado de 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... 

Eu estou no windows (não no DOS), mas tenho acesso ao powershell, pandoc, emacs, cygwin ou qualquer outra coisa que você recomende. (Claramente eu sou um newb experimentando o modo org.)

Eu 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.

    
por Brady Trainor 29.11.2013 / 06:29

2 respostas

5

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 terrivelmente ... mas funcionará em um aperto.

    
por 29.11.2013 / 06:57
1

Inspirado na estrutura do script do 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 o pandoc , simplesmente remova o pipe e o comando, | pandoc -t org .)

Este script localizará 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>

Acho que isso deixará target-file.org em um bom estado para melhorar a partir do Emacs, sem que o script seja muito complicado. (Especialmente se você incluir a etapa pandoc ).

    
por 07.08.2014 / 02:01