【发布时间】:2010-12-13 17:56:11
【问题描述】:
我有一个小脚本,它简单地读取文件的每一行,检索 id 字段,运行实用程序来获取名称并在末尾附加名称。问题是输入文件很大(2GB)。由于输出与附加了 10-30 字符名称的输入相同,因此具有相同的数量级。如何优化它以读取大缓冲区,在缓冲区中处理,然后将缓冲区写入文件,从而最大限度地减少文件访问次数?
#!/bin/ksh
while read line
do
id=`echo ${line}|cut -d',' -f 3`
NAME=$(id2name ${id} | cut -d':' -f 4)
if [[ $? -ne 0 ]]; then
NAME="ERROR"
echo "Error getting name from id2name for id: ${id}"
fi
echo "${line},\"${NAME}\"" >> ${MYFILE}
done < ${MYFILE}.csv
谢谢
【问题讨论】:
标签: optimization file-io ksh