GNU/Linux >> Znalost Linux >  >> Linux

Jak připojit data do vyrovnávací paměti ve skriptu Shell?

Chtěl bych provést následující pomocí skriptu shell:(pro jednoduchost používám stejná data pro INPUT. V reálném případě se data mění se štítkem smyčky jj)

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

To je však velmi neefektivní, protože otevírání a zavírání souboru probíhá ve smyčce. Když je velikost souboru INPUT.file velká, bude tento kód velmi pomalý. Zajímalo by mě tedy, zda existuje způsob, jak mít/vytvořit vyrovnávací paměť, jako je vytvoření předem alokované proměnné v C.

Přijatá odpověď:

Díky odpovědi Stéphana Chazelase na „Proč je takový rozdíl v době provedení echa a kočky?“, může být odpověď muru trochu vylepšena voláním cat pouze jednou (nicméně toto „málo“ množství se může stát hodně pro velká data a četné opakování smyček; v mém systému tento skript zabere ~75 % času, který zabere skript s smyčkou):

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

Linux
  1. Jak připojit výstup do souboru?

  2. Jak změnit slovo v souboru pomocí skriptu linux shell

  3. Připojte řádek do souboru /etc/hosts pomocí skriptu shellu

  1. Jak přidat text na konec souboru v Linuxu

  2. Jak rm funguje? Co dělá rm?

  3. Jak spustit soubor bez přípony .sh v shellu

  1. Jak zacházet s přepínači ve skriptu Shell?

  2. Jak vytvořit dočasný soubor ve skriptu Shell?

  3. Jak zkontrolovat podřetězec v Shell Script Bash?