我想复制五个文件的内容到一个文件。我试着对每个文件使用cp。但是这会覆盖从上一个文件复制的内容。我也试过

paste -d "\n" 1.txt 0.txt

但这并没有奏效。

我希望我的脚本在每个文本文件的末尾添加换行符。

如。文件1.txt, 2.txt, 3.txt。把1,2,3的内容放在0.txt中

我该怎么做?


当前回答

如果您所有的文件都在一个目录中,您可以简单地这样做

猫* > .txt

文件1.txt,2.txt, ..会进入0.txt

其他回答

所有的(文本)文件到一个

find . | xargs cat > outfile

Xargs生成find的输出行。猫的论点。

Find有很多选项,比如name '*.txt'或type。

如果您想在管道中使用它,您应该查看它们

如果您所有的文件都在一个目录中,您可以简单地这样做

猫* > .txt

文件1.txt,2.txt, ..会进入0.txt

如果你想将3个文件的内容追加到一个文件中,那么下面的命令将是一个很好的选择:

cat file1 file2 file3 | tee -a file4 > /dev/null

它将所有文件的内容合并到file4中,将控制台输出抛出到/dev/null.

如果你的文件包含头文件,你想在输出文件中删除它们,你可以使用:

for f in `ls *.txt`; do sed '2,$!d' $f >> 0.out; done

If the original file contains non-printable characters, they will be lost when using the cat command. Using 'cat -v', the non-printables will be converted to visible character strings, but the output file would still not contain the actual non-printables characters in the original file. With a small number of files, an alternative might be to open the first file in an editor (e.g. vim) that handles non-printing characters. Then maneuver to the bottom of the file and enter ":r second_file_name". That will pull in the second file, including non-printing characters. The same could be done for additional files. When all files have been read in, enter ":w". The end result is that the first file will now contain what it did originally, plus the content of the files that were read in.