bashプログラミングにファイルへの書き込みバッファはありますか? もしあれば、そのサイズを変更することは可能ですか。
ここに問題があります
ファイルを1行ずつ読み取り、読み取ったデータを操作して、結果を別のファイルに書き込むbashスクリプトがあります。このようなもの
while read line
some grep, but and sed
echo and append to another file
入力データは非常に巨大です (約 20 GB のテキスト ファイル)。進行が遅いため、bash のデフォルトの動作が読み取り行ごとに結果を出力ファイルに書き込むことである場合、進行が遅くなるという疑問が生じます。
知りたいのですが、いくつかの出力をバッファリングしてから、そのチャンクをファイルに書き込むメカニズムはありますか? この問題についてインターネットで検索しましたが、有益な情報は見つかりませんでした...
OS 関連の質問ですか、それとも bash ですか? OSはcentosリリース6です。
スクリプトは
#!/bin/bash
BENCH=$1
grep "CPU 0" $BENCH > `pwd`/$BENCH.cpu0
grep -oP '(?<=<[vp]:0x)[0-9a-z]+' `pwd`/$BENCH.cpu0 | sed 'N;s/\n/ /' | tr '[:lower:]' '[:upper:]' > `pwd`/$BENCH.cpu0.data.VP
echo "grep done"
while read line ; do
w1=`echo $line | cut -d ' ' -f1`
w11=`echo "ibase=16; $w1" | bc`
w2=`echo $line | cut -d ' ' -f2`
w22=`echo "ibase=16; $w2" | bc`
echo $w11 $w22 >> `pwd`/$BENCH.cpu0.data.VP.decimal
done <"`pwd`/$BENCH.cpu0.data.VP"
echo "convertion done"