複数のテキストファイル(_+ ファイル名_)を 1 つのテキストファイルに結合します。

複数のテキストファイル(_+ ファイル名_)を 1 つのテキストファイルに結合します。

いくつかのテキストファイルを結合したいのですが、タイトルを付けたいです(編集:ファイル名)。理想的には、次のようなものです。

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

etc... 

私は Windows (DOS ではありません) を使用していますが、PowerShell、Pandoc、Emacs、Cygwin、またはあなたが推奨するその他のツールにアクセスできます。 (明らかに私は org-mode を試している初心者です。)

すべてを 1 つのフォルダーに簡単に入れることができます。ただし、各ファイルの名前を入力するのは避けたいです。bat ファイルが推奨される場合は、使用したことはありませんが、学習するつもりです。

答え1

もっと賢い方法があると思いますが、ここではすべてのファイルを結合する PowerShell スクリプトを紹介します。

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

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

効率的ですか? それほどではありませんが... いざというときには役立ちます。

答え2

Mitch のスクリプトの構造に触発されて、GNU/Linux や OS X などの Unix ベースの環境用のバージョンを作成しました。

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.rtfsubd/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、ステップを含める場合)

関連情報