在UNIX中将文件的内容附加到另一个文件的开头

时间:2013-01-08 09:08:38

标签: linux shell unix

我知道

cat file1 >> file2 

会在file2的末尾附加file1的内容。另一方面,如何在文件2的开头附加file1的内容,而不是在结尾?

实际上,我有一个主文件M,以及目录D中的其他几个文件。我想在目录D的所有文件的开头附加文件M的内容。

3 个答案:

答案 0 :(得分:9)

对于您可以执行的每个文件:

cat MASTER file >> file.tmp

然后将file.tmp移到文件上。

答案 1 :(得分:8)

只是做:

cat file1 file2 > tmp && mv tmp file2

答案 2 :(得分:3)

您必须使用临时文件并在合并后重命名。

示例:

echo -e "a\nb\nc" > LETTERS
echo -e "1\n2\n3" > NUMBERS 
cat NUMBERS LETTERS > TMP
mv TMP LETTERS
cat LETTERS

您的命令可能类似于:

for file in $( find -name "*.java" ); do cat PREPEND ${file} > ${file}.tmp; mv ${file}.tmp ${file}; done