5.3 将文件与其他文件拼接

cat file1 file2 > file3

在上一个例子中,将两个文件拼接起来,并将它们打印到屏幕这个stdout设备上。但是这可能不是你想要的效果。将两个文件拼接起来,最好还能将新连接的文件保存成另一个可以使用的文件。为此,需要使用第4章中学到的方法,将输出结果由stdout重定向到一个文件。

  1. $ ls
  2. housman_-_rue.txt quarles_-_the_world.txt
  3. $ cat housman_-_rue.txt quarles_-_the_world.txt > poems.txt$ ls
  4. housman_-_rue.txt poems.txt quarles_-_the_world.txt

现在,你就可以随意使用poems.txt这个文件了。如果想在这个文件中增加更多短诗,操作起来很容易,如下所示:

  1. $ cat housman_-_one-and-twenty.txt >> poems.txt

注意,这一次使用>>将新的短诗追加到poems.txt中。下面的命令不会运行成功:

  1. $ cat housman_-_one-and-twenty.txt poems.txt > poems.txt

如果想把文件和它自身拼接起来,就会看到这个错误消息,解释为什么不能完成请求:

  1. cat: poems.txt: input file is output file