我想将一个包含 10000 条记录的文件拆分为多个记录大小相同的文件。这些新文件需要作为 shell 脚本的输入。 Shell 脚本应针对每个文件并行运行。我们可以在这里使用任何循环吗?
答案1
假设您的数据文件被调用data.txt
并且您要运行的脚本被调用script.sh
。然后你可以执行如下操作:
#!/bin/bash
# Create a temporary directory
splitdir="$(mktemp -d)"
# Splite the data-file into files of 1000 lines each
split --lines=1000 -d --suffix-length=3 data.txt "${splitdir}/chunk"
# Run your script on each data file separately
for chunk in "${splitdir}/"*; do nohup script.sh "${chunk}" &; done