我正在使用 shell 脚本遍历一系列大文件:
i=0
while read line
do
# get first char of line
first=`echo "$line" | head -c 1`
# make output filename
name="$first"
if [ "$first" = "," ]; then
name='comma'
fi
if [ "$first" = "." ]; then
name='period'
fi
# save line to new file
echo "$line" >> "$2/$name.txt"
# show live counter and inc
echo -en "\rLines:\t$i"
((i++))
done <$file
每行中的第一个字符要么是字母数字,要么是上面定义的字符之一(这就是为什么我要重命名它们以用于输出文件名)。
实在是太慢了
5,000 行需要 128 秒。
以这个速度,我有一个月的处理时间。
awk 在这里会更快吗?
如果是这样,我如何将逻辑融入 awk?