Linux 将一个文件的内容添加到另一个文件的顶部

Linux 将一个文件的内容添加到另一个文件的顶部,linux,command-line,sed,terminal,ed,Linux,Command Line,Sed,Terminal,Ed,我需要在目录及其子目录中大量文件的顶部插入1个文件中的文本。我已经能够使用ed在文件基础上成功地做到这一点: ed -s FileToAddTo.txt <<< $'0r TextToAdd.txt\nw' ed-s FileToAddTo.txt基于,您可以尝试: for fn in `ls -R /folderName`; do cat "$fn" >> fileName; done 像这样: cat TextToAdd.txt FileToAddTo.t

我需要在目录及其子目录中大量文件的顶部插入1个文件中的文本。我已经能够使用ed在文件基础上成功地做到这一点:

ed -s FileToAddTo.txt <<< $'0r TextToAdd.txt\nw'
ed-s FileToAddTo.txt基于,您可以尝试:

for fn in `ls -R /folderName`; do cat "$fn" >> fileName;  done
像这样:

cat TextToAdd.txt FileToAddTo.txt > $$.tmp && mv $$.tmp FileToAddTo.txt
i、 e.将新头文件和原始文件转换为临时文件,如果成功,将临时文件重命名为原始文件

并以递归方式运行!!请测试备份的数据

find . -type f -name "*.txt" -exec sh -c "cat TextToAdd.txt {} > $$.tmp && mv $$.tmp {}" \;

这对我来说非常有效:

$ for fn in `find . -name '*.txt'`; do; cat textToAdd.txt $fn > $$.tmp && mv $$.tmp $fn; done;

对于包含空格的文件名,将失败,并且执行与OP所需相反的操作。谢谢,但这不起作用。当我用*.txt替换filetoaddto.txt时,什么都没有发生。您的第二行代码甚至没有引用texttoadd.txt我知道发生了什么,抱歉。我已经更新了,现在应该没有任何需要更改的地方了。请再试一次。
$ for fn in `find . -name '*.txt'`; do; cat textToAdd.txt $fn > $$.tmp && mv $$.tmp $fn; done;