GNU/Linux >> Linux Esercitazione >  >> Linux

Come aggiungere i dati al buffer nello script della shell?

Mi piacerebbe fare quanto segue usando lo script della shell:(per semplicità, uso gli stessi dati per INPUT. Nel caso reale, i dati cambiano con l'etichetta del ciclo jj)

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

Tuttavia, questo è molto inefficiente poiché l'apertura e la chiusura del file sono nel ciclo. Quando la dimensione del file INPUT.file è grande, questo codice sarà molto lento. Quindi mi chiedo se c'è un modo per avere/creare un buffer come creare una variabile preallocata in C.

Risposta accettata:

Grazie alla risposta di Stéphane Chazelas a "Perché c'è una tale differenza nel tempo di esecuzione di echo e cat?", la risposta di muru potrebbe essere leggermente migliorata chiamando cat solo una volta (tuttavia, questo "piccolo" importo può diventare molto per i big data e numerose iterazioni di loop; sul mio sistema, questo script impiega circa il 75% del tempo impiegato dallo script con loop):

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

Linux
  1. Come gestire gli interruttori in uno script di shell?

  2. Come creare un file temporaneo nello script della shell?

  3. Come controllare la sottostringa in Shell Script Bash?

  4. Come aggiungere l'output a un file?

  5. Come cambiare una parola in un file con lo script della shell linux

Come aggiungere testo alla fine del file in Linux

Come utilizzare le variabili negli script della shell

Come creare script di shell

Come eseguire lo script della shell come servizio Systemd in Linux

Come eseguire un comando in uno script della shell?

Un file .sh può essere un malware?