シェルスクリプトを使用して、一連の大きなファイルをループしています。
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 に適合させることができますか?