将多个文件连接到unix中的单个文件中

时间:2012-05-30 05:04:23

标签: file unix mainframe cat

我有两种类型的文件 - 简单的字符文件和pdf文件。

第一个文件的名称是plainFile.abc,第二个文件的名称是pdfFile.pdf

我想将这两个文件合并到一个文件中。

目标文件的名称将是combined.file

我正在使用cat命令来实现相同的目标:

Way 1:

cat plainFile.abc > combined.file
cat pdfFile.pdf > combined.file

Way 2:

cat plainFile.abc > combined.file
cat pdfFile.pdf >> combined.file   

注意'>'的区别和'>>'以上方式。

在第一种情况下,即使定义为“运算符>”,第二个文件也不会附加到目标文件中。可用于将多个文件合并为一个。'

在第二种方式中,两个文件合并,但第二个文件被附加在第一个文件结束的位置。我不想要这个。我希望第二个文件从新行中的新位置开始。

我们的想法是将目标文件发送到将要解析它的大型机。

所以我希望第二个文件从第一个位置开始:

----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
second file should start from position one

但是,现在如果第一个文件在第3个位置结束,那么第二个文件就会在第4个文件之后,即第4个位置附加。

如何达到我的要求?

有没有比CAT命令更好的方法?

感谢阅读!

2 个答案:

答案 0 :(得分:5)

  

我希望新文件从新行的开头开始。

如果这是您想要的,cat可能是您想要的命令。您可以通过管道空白回显来插入换行符:

cat plainFile.abc > combined.file
echo >> combined.file
cat pdfFile.pdf >> combined.file

或者,稍微不那么混乱的方式,您可以使用echo创建一个只有空行的文件:

echo > blank_line

然后使用这个cat命令:

cat plainFile.abc blank_line pdfFile.pdf > combined.file

修改

  

1)pdf不是从新行开始的。 2)此外,pdf在主机中显示为损坏的文件。 CAT是将不同类型的多个文件合并为单个文件的正确方法吗?

如果您想要 concatenate them ,那么您可以使用cat。如果你想将许多文件组合在一起然后能够将它们分开,你使用cat,因为那不是它的用途。二进制pdf将被破坏,因为你已将它连接到ascii文件的末尾。如果您希望以后能够分离文件,请遵循infgeoax的建议并使用tar

cat不会做一些让你在完成后将你连接在一起的东西分开的东西。例如,你有3个字符串:“are”,“a”,“dyes”。你连接它们,你得到“areadyes”。如果没有任何先前的知识,你不能再将它们分成3个字符串。是“是”,“一个”,“染料”?或“a”,“read”,“yes”?您可以添加空格或其他字符来分隔字符串,但是如果您开始使用的字符串中包含其中一个字符会怎么样?

如果您在此大型机上没有tar,则必须考虑其他问题。也许不是在pdf文件上使用cat,而是使用hexdumpoduuencode / uudecode之类的内容将二进制文件转储到ascii,然后在大型机上,重建二进制文件。

答案 1 :(得分:3)

为什么不使用tar

tar cf outputfile plainfile.abc pdfFile.pdf

在大型机上,您可以撤消流程

tar xf ouputfile