Bash一次读取1000行文件直到完成

时间:2017-11-20 11:59:36

标签: bash loops for-loop

我正在bash文件上执行包含10,000行的txt脚本。

而不是split一个文件到每个1000行的单个文件并在这些分割上执行我的循环,我想一次读取1000行并运行一个函数,然后读取接下来的1000行和等等,直到文件被读取。

我尝试了head该文件,然后sed这些行无效。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

您可能希望将各个块传递给您的函数。使用while循环 像这样。

i=1
chunk_file="yourfile.txt"
j=$(($i + 1000 - 1 ))
total_lines=`wc -l $yourfile | awk '{print $1}'`
#total_lines=10000
while [[ $i -le $total_lines ]]
do
echo $i,$j
sed -n "$i,$j p"  > ${chunk_file}
yourfunction ${chunk_file}

i=$(( $j + 1))
j=$(($i + 1000 - 1 ))

done