2

Я хотел бы объединить несколько текстовых файлов, но с заголовками (EDIT: имена файлов). В идеале что-то вроде

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

etc... 

Я нахожусь в Windows (не DOS), но у меня есть доступ к PowerShell, Pandoc, Emacs, Cygwin или что-нибудь еще, что вы рекомендуете. (Очевидно, что я новичок, пробующий режим орг.)

Я могу легко положить их все в одну папку. Но я хотел бы избежать ввода имени каждого файла. Если файл bat рекомендуется, я никогда не использовал его, но готов учиться.

2 ответа2

5

Я уверен, что есть что-то более умное, но вот скрипт powershell объединит все файлы:

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

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

Это эффективно? Не ужасно ... но это будет работать в крайнем случае.

1

Вдохновленный структурой сценария Митча, я написал версию для сред на основе Unix, таких как GNU/Linux и 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

(Если вы не хотите устанавливать pandoc , просто удалите канал и команду, | pandoc -t org .)

Этот скрипт найдет все файлы в текущем каталоге и его подкаталогах, которые имеют расширения файлов, как описано (.docx и т.д.).

Например, если список включает fileA.text и fileB.rtf в подкаталоге subd/ , targetfile.org получит такие строки:

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

Я думаю, что это оставит target-file.org в довольно хорошем состоянии для улучшения из Emacs, без скрипта, который будет слишком сложным. (Особенно, если вы pandoc шаг Пандока .)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .