我有一个 zip 文件夹,其中包含多个相同格式的文件。每个文件大小约为 50 MB。我需要将每个文件拆分成多个 block (比如每个拆分输出文件 1000 行)。
我写了一个 shell 脚本,它解压缩文件夹并将拆分文件输出保存在一个目录中。
问题在于输出 block 的格式不可读,其中包含符号和随机字符。 当我单独为每个文件执行此操作时,它会输出完美的 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 文件分块。
解决方案
以下内容未经测试,因为我没有您的源文件。但是,稍作调整后它应该适合您。
unzip -d /tmp/unzipped input.zip
mkdir /tmp/split_files
for file in /tmp/unzipped/*txt do;
split -l 1000 "$file" "/tmp/split_files/$(basename "$file" .txt)"
done
关于Linux Shell 脚本解压缩和分割文件输出不可读的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32788444/