ループ内の行の増加を監視するには、wc -l を使用します。

ループ内の行の増加を監視するには、wc -l を使用します。

ループ(wc -l)で結果を受け取るファイルの行数の増加を監視するために、短いbashスクリプトを作成しました。

したがって:

printf "Name of file to monitor\n"
read file

printf "How long to monitor file growth in minutes\n"
read time

printf "Interval between loops\n"
read s

a=$((time * 60))                                   # works out overall time in seconds
b=$((a / s))                                       # no of loops

for i in $( eval echo {0..$b} )
do
    printf "Loop number: %-10.2d Interval: %-10.2d Line Count: %-10.2d.\n" $i  $s  $'wc -l $file'   
    sleep $s 
done
printf "finished\n"

この行の最後のパラメータに問題がありますprintf。関数wc内で関数を正しく記述する方法がわかりませんprintf

答え1

呼び出すと、行wc -l filename数の横にファイル名が出力されます。コマンド置換を二重引用符で囲まないと、単語は区切ります。つまり、空白がある場合は複数の単語に展開されます。最後に、printf指定されたパラメータがすべて使用されるまで、型を繰り返し使用します。(ねえ)

正しいアプローチは次のとおりです。

printf "Loop number: %-10.2d Interval: %-10.2d Line Count: %-10.2d \n" $i  $s  $l "$(wc -l <"$file")"

関連情報