GNU/Linux >> Linux の 問題 >  >> Linux

シェルスクリプトでバッファにデータを追加する方法は?

シェルスクリプトを使用して次のことを行います:(簡単にするために、INPUTにも同じデータを使用します。実際には、データはループラベルjjで変更されます)

#!/bin/sh
for jj in `seq 100`; do
    cat INPUT.file >> OUTPUT.file
done

ただし、ファイルの開閉がループ内にあるため、これは非常に非効率的です。 INPUT.fileのサイズが大きい場合、このコードは非常に遅くなります。ですから、Cで事前に割り当てられた変数を作成するようなバッファを作成/作成する方法があるかどうか疑問に思っています。

承認された回答:

「エコーと猫の実行時間にこんなに違いがあるのはなぜ?」というステファン・チャゼラスの答えのおかげで、catを呼び出すことでmuruの答えが少し改善されるかもしれません。 一度だけ(ただし、この「少量」の量は、ビッグデータと多数のループ反復で大量になる可能性があります。私のシステムでは、このスクリプトはループを持つスクリプトにかかる時間の最大75%を要します):

#!/bin/sh
yes INPUT.file | head -100 | xargs cat >> OUTPUT.file

Linux
  1. Linuxでファイルの終わりにテキストを追加する方法

  2. シェルスクリプトで一時ファイルを作成するにはどうすればよいですか?

  3. シェルスクリプトBashでサブストリングをチェックする方法は?

  1. ファイルまたはディレクトリが変更されたときにシェルスクリプトを実行する方法は?

  2. ファイルを bash シェル スクリプトに含める方法

  3. ファイルにテキストを追加するにはどうすればよいですか?

  1. 出力をファイルに追加する方法は?

  2. sudoとしてファイルに追加する方法は?

  3. .sh ファイルがマルウェアになる可能性はありますか?