Jac*_*kWM 4 script bash shell file-io
假设我有一个 10MB 的文本文件foo.txt,它有 100,000 行。现在,我想foo.txt逐个窗口处理,窗口大小为 10。
我目前的脚本是这样的:
for ((i=0;i<$lines;i=i+$step))
do
head -$((i+step)) $1 | tail -$step > tmp1
head -$((i+step)) $2 | tail -$step > tmp2
setstr=$setstr' '`./accuracy.sh tmp1 tmp2`
done
echo $setstr | awk '{for (i=1;i<=NF;i++) sum+=$i; }END{print sum/NF}'
Run Code Online (Sandbox Code Playgroud)
但它运行缓慢。有什么简单有效的方法可以做到这一点吗?
小智 5
你可以这样做split:
以下是如何使用它的示例:
split -l 10 input_file output_file_prefix_
Run Code Online (Sandbox Code Playgroud)
该-l选项代表--lines=
这将分成input_file多个块,每块 10 行,分成这些文件:
output_file_prefix_aa
output_file_prefix_ab
output_file_prefix_ac
...
Run Code Online (Sandbox Code Playgroud)
等等。
有关您可以使用的其他方式split,请参阅man split或此处
| 归档时间: |
|
| 查看次数: |
303 次 |
| 最近记录: |