通过Mac上的终端将多个文本文件名和内容合并为一个文件

通过Mac上的终端将多个文本文件名和内容合并为一个文件

我想将多个文本文件(所有文件都以 .txt 结尾)合并到同一个文档中,每个文件的文件名将内容分隔开。我找到了合并内容的方法,也找到了合并文件名的方法,但我最接近同时完成这两件事的是下面的超级用户问题,这正是我想要的,但建议如何在 MacOS 上使用代码的评论似乎不起作用,可能是因为这个问题已经有近十年了。我使用的是 mac OS Big Sur 11.2.3。任何帮助我都会很感激!

将多个文本文件 + 文件名 合并为一个文本文件

编辑:根据机器人的建议,我复制并粘贴了之前发布的问题中的澄清细节,因为它问得非常简洁。这是我正在寻找的一个例子

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

etc... 

编辑:更多细节

我通过 Automator 运行它,通过“获取指定的 Finder 项目”和“获取文件夹内容”输入文件,然后将下面复制的脚本输入到“运行 Shell 脚本”中。它说一切运行良好,给出“工作流程已完成”且没有错误,但我没有任何地方有“target-file.org”。

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

编辑:解决方案,如果不是我开始寻找的

我意识到我试图一步完成所有操作,这太复杂了。我找到了一些其他可以通过 automator 的 power shell 运行的东西,它们允许我在每个文档的顶部添加一个文件名,然后在完成后使用非常易于使用的 cat 命令合并所有文本。这些代码目前对我有用。

cd /Filepath_to_my_folder
for file in *.txt
do
  ed -s $file < <(printf '%s\n' 1i "$file" . wq)
done
cat *.txt > Merged.txt

相关内容