10000レコードを含むファイルを同じレコードサイズの複数のファイルに分割したいと思います。これらの新しいファイルはシェルスクリプトへの入力として必要です。シェルスクリプトは各ファイルに対して並列に実行する必要があります。ここでループを使用できますか?
答え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