端末出力をファイルに継続的に書き込んでいますか?

端末出力をファイルに継続的に書き込んでいますか?

10秒ごとに100から999の間の任意の数を印刷するスクリプトがある場合、その情報を.txtファイルにどのように収集しますか?中央の数だけを集めることも可能ですか?例:「659」から「5」を収集します。

答え1

スクリプトの端末出力を保存できます。スクリプトが毎回数字を印刷する場合、出力をファイルにリダイレクトすると数字が保存されます。

script > file.txt

script >> file.txt

file.txt次に、y中心の5つの結果のみを表示します。

len=$(wc -l < file.txt);
#to store the length of file

len=$((($len/2)-3));  
#to get the middle of file

tail -n $len file.txt | head -n 5 ; 
#show 5 lines from midlle of file

答え2

これにはいくつかのステップがあります。まず、bash出力をテキストファイルに書き込む必要があります。あなたはそれを使用することができますtee(マンページ) スクリプトを「myscript」と呼びます。

ご意見を次の住所にお送りください。

tee /path/to/myscript.txt

これにより、bash入力の出力が次に書き込まれます。/path/to/myscript.txt

だからそれは

sh /path/to/myscript.sh | tee /path/to/myscript.txt

で標準テキスト処理を実行できます/path/to/myscript.txt

「中央値」を使用すると、行の数が偶数であるか奇数であるかによって異なります。ただし、sedを使用して目的の行を印刷できます。

sed -n 'x,yp' /path/to/myscript.txt

印刷したい行間隔の境界はどこxですか?y

答え3

script | tee path/to/file.txt

script | cut -c 2

script | cut -c 2 | tee path/to/file.txt

関連情報