いくつかのテキストファイルを結合したいのですが、タイトルを付けたいです(編集:ファイル名)。理想的には、次のようなものです。
* 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.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
、ステップを含める場合)