GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie fügt man Daten an den Puffer im Shell-Skript an?

Ich möchte Folgendes mit Shell-Skript tun:(Der Einfachheit halber verwende ich dieselben Daten für INPUT. Im wirklichen Fall ändern sich die Daten mit dem Loop-Label jj)

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

Dies ist jedoch sehr ineffizient, da das Öffnen und Schließen der Datei in der Schleife erfolgt. Wenn die Größe der Datei INPUT.file groß ist, wird dieser Code sehr langsam sein. Ich frage mich also, ob es eine Möglichkeit gibt, einen Puffer zu haben/zu erstellen, wie eine vorab zugewiesene Variable in C zu erstellen.

Akzeptierte Antwort:

Dank der Antwort von Stéphane Chazelas auf „Warum gibt es einen solchen Unterschied in der Ausführungszeit von echo und cat?“ kann die Antwort von muru durch den Aufruf von cat etwas verbessert werden nur einmal (jedoch kann diese „kleine“ Menge für große Datenmengen und zahlreiche Schleifeniterationen viel werden; auf meinem System benötigt dieses Skript ~75 % der Zeit, die das Schleifen enthaltende Skript benötigt):

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

Linux
  1. So schließen Sie eine Datei in ein Bash-Shell-Skript ein

  2. So führen Sie ein Shell-Skript beim Start aus

  3. Zeile mit Shell-Skript an die Datei /etc/hosts anhängen

  4. Wie funktioniert Rm? Was macht Rm?

  5. So führen Sie eine Datei ohne die Erweiterung .sh in der Shell aus

So verwenden Sie Variablen in Shell-Skripten

So erstellen Sie Shell-Skripte

So führen Sie Shell-Skript als Systemd-Dienst in Linux aus

Wie führe ich einen Befehl in einem Shell-Skript aus?

Wie füge ich Text an eine Datei an?

Wie kann ich als sudo an eine Datei anhängen?