【发布时间】:2015-09-25 18:25:24
【问题描述】:
我有一个 zip 文件夹,其中包含多个相同格式的文件。每个文件大小约为 50 mb。我需要将每个文件拆分为多个块(例如每个拆分的输出文件 1000 行)。
我编写了一个 shell 脚本,它解压缩文件夹并将拆分的文件输出保存在一个目录中。
问题在于输出块的格式不可读,包含符号和随机字符。 当我单独为每个文件执行此操作时,它会输出完美的 txt 拆分文件。但整个 zip 文件夹不会发生这种情况。
任何人都知道如何以 txt 格式获取这些文件。 这是我的脚本。
for z in input.zip ; do
if unzip -p "$z" | split -l 1000 $z output_dir ; then
echo "$z"
fi
done
【问题讨论】:
-
您的 zip 文件的内容是什么?您是否在拆分文件中得到任何纯文本(或其他)输出?
-
这会将
input.zip中每个文件的整个内容流式传输到管道,然后拆分将对进行操作总内容。这就是你想要的吗? -
$z的值为input.zip,此循环将运行 1 次。那是你要的吗?此外,您需要告诉split从标准输入中读取,只需一个普通的-而不是$z。您的split手册页版本可能会提到这一点(我的确实如此)。而且我认为您不能像在此处所做的那样指定 output_dir。在开始添加功能之前,让它在当前目录中工作;-) 祝你好运。