我有两种类型的文件 - 简单的字符文件和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命令更好的方法?
感谢阅读!
答案 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
,而是使用hexdump
,od
或uuencode
/ uudecode
之类的内容将二进制文件转储到ascii,然后在大型机上,重建二进制文件。
答案 1 :(得分:3)
为什么不使用tar
。
tar cf outputfile plainfile.abc pdfFile.pdf
在大型机上,您可以撤消流程
tar xf ouputfile