1

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

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

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

目标文件的名称将被合并。文件

我正在使用 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。

如何达到我的要求?

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

谢谢阅读!

4

2 回答 2

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是将多个不同类型的文件组合成单个文件的正确方法吗?

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

cat一旦你完成它,它就不会做让你分开你已经连接在一起的东西的事情。例如,您有 3 个字符串:“are”、“a”、“dyes”。你将它们连接起来,你就会“准备好”。如果没有任何先验知识,您就不能再次将它们分成 3 个字符串。是“是”、“一个”、“染料”吗?还是“a”、“read”、“yes”?您可以添加空格或其他字符来分隔字符串,但如果您开始使用的字符串包含这些字符之一怎么办?

If you don't have tar on this mainframe, you'll have to think of something else. Maybe instead of using cat on the pdf file, use something like hexdump, od, or uuencode/uudecode to dump the binary file to ascii, then on the mainframe, rebuild the binary file.

于 2012-05-30T08:20:56.490 回答
3

为什么不使用tar.

tar cf outputfile plainfile.abc pdfFile.pdf

在大型机上,您可以反转该过程

tar xf ouputfile
于 2012-05-30T05:10:10.590 回答