Bash Pro každý řádek v souboru

Bash Each Line File

Smyčku For v Bash lze použít s různými variacemi k provádění více úkolů. Jednou takovou variací je Pro každý řádek v souboru, který je zodpovědný za čtení všech řádků v souboru. V tomto článku budeme hovořit o způsobech použití pro každý řádek v souboru v Bash.

Poznámka: Níže uvedené metody byly ukázány na Ubuntu 20.04. Budou však také dobře fungovat s jakoukoli jinou distribucí Linuxu.



Metody použití pro každý řádek v souboru v Bash:

V těchto metodách vám ukážeme příklad, ve kterém můžete přečíst každý řádek ze souboru, a pak jej můžete buď zobrazit na terminálu, nebo dokonce můžete tyto řádky uložit do jiného souboru. Podívejme se na obě tyto metody.



Metoda č. 1: Pro zobrazení řádků pro čtení na terminálu:

Chcete -li zobrazit řádky souboru na terminálu pomocí pro každý řádek v souboru, budete muset provést následující kroky:



Krok č. 1: Vytvoření fiktivního textového souboru:

Nejprve musíte kvůli demonstraci vytvořit textový soubor s některými náhodnými daty. Přestože tento textový soubor lze vytvořit kdekoli, důrazně doporučujeme vytvořit jej ve složce Domů. Chcete -li to provést, klikněte na ikonu Správce souborů zvýrazněnou na obrázku níže:

  • Vytvoření fiktivního textového souboru

    Nyní klikněte pravým tlačítkem kdekoli ve své domovské složce a v zobrazené nabídce vyberte možnost Nový dokument. Poté vyberte možnost Vyprázdnit dokument. Jakmile je ve vaší domovské složce vytvořen prázdný dokument, zadejte pro něj požadovaný název a poté příponu .txt. V tomto příkladu jsme jej pojmenovali jako ForEachLine.txt.

  • Vytvoření fiktivního textového souboru 2
    Poklepáním na tento textový soubor jej otevřete a poté do něj zadejte libovolný náhodný text, jak ukazuje následující obrázek. Poté tento soubor uložte a zavřete.



  • Vytvoření fiktivního textového souboru 3

    Krok č. 2: Vytvoření skriptu Bash:

    Nyní vytvořte soubor Bash stejným způsobem, jako jste vytvořili textový soubor ve složce Home, kromě toho, že tentokrát musíte zadat název a za ním příponu .sh místo příponu .txt. Náš soubor Bash jsme pojmenovali jako ForEachLine.sh, ale můžete mu dát libovolné jméno podle svého výběru.
    Vytvoření skriptu Bash

    Otevřete tento soubor poklepáním na něj a poté zadejte skript zobrazený na obrázku níže do nově vytvořeného souboru Bash. Zde je první řádek, který označuje, že následující skript je skript Bash. Jednoduše jsme vytvořili proměnnou s názvem Soubor a přiřadili jsme jí název našeho textového souboru jako jeho hodnotu, tj. ForEachLine.txt. Poté jsme vytvořili proměnnou s názvem Lines a vyrovnali ji na $ (cat $ File). Zde příkaz cat přečte obsah našeho textového souboru a když mu předchází symbol $, pak obsah načtený tímto příkazem bude uložen do proměnné Lines. Tímto způsobem budou všechny řádky souboru s názvem ForEachLine.txt uloženy do proměnné Lines. Poté jsme použili smyčku For, která má iterátorový řádek. Tento iterátor funguje na proměnné Lines, kterou jsme vytvořili výše, a bude iterovat všechny řádky jeden po druhém. Potom jsme v hotovém bloku jednoduše zobrazili všechny tyto řádky na terminálu pomocí příkazu echo.
    Vytvoření Bash Script2

    Krok č. 3: Spuštění skriptu Bash:

    Nyní spusťte terminál v Ubuntu 20.04 a poté v něm spusťte následující příkaz pro spuštění výše vytvořeného skriptu Bash:
    bash ForEachLine.sh
    Spuštění bash skriptu

    Když tento příkaz spustí skript bash, pak budete moci na terminálu vidět všechny řádky textového souboru, jak ukazuje následující obrázek:
    Spuštění bash skriptu

    Metoda č. 2: Uložení všech řádků čtení do jiného souboru:

    V této metodě jsme mírně upravili skript Bash vytvořený výše uvedenou metodou pro uložení všech přečtených řádků do nového textového souboru, nikoli jejich zobrazení na terminálu. Chcete -li to provést, proveďte níže uvedené kroky:

    Krok č. 1: Úprava výše vytvořeného skriptu Bash a jeho spuštění:

    Otevřete skript Bash, který jste vytvořili výše uvedenou metodou, a upravte jej, jak ukazuje následující obrázek. Jednoduše jsme přidali symbol >> následovaný novým názvem souboru za příkaz echo do bloku do-done. Tato úprava místo zobrazení na terminálu uloží všechny přečtené řádky do nového textového souboru. Nyní spusťte skript Bash znovu přes terminál pomocí příkazu bash následovaného názvem souboru Bash. Tentokrát, když se spustí skript Bash, vytvoří nový textový soubor, jehož název je v tomto případě NewFile.txt.
    Úprava výše vytvořeného skriptu Bash a jeho spuštění 1

    Krok č. 2: Přístup k nově vytvořenému textovému souboru:

    Chcete -li ověřit, zda byly všechny přečtené řádky uloženy do nového textového souboru, můžete jednoduše zobrazit obsah tohoto souboru spuštěním následujícího příkazu ve vašem terminálu:
    kočka NewFile.txt
    Přístup k nově vytvořenému textovému souboru
    Výstup zobrazený na obrázku níže vám zajistí, že všechny přečtené řádky byly zkopírovány do nového textového souboru.
    Přístup k nově vytvořenému textovému souboru2

    Závěr:

    Tímto způsobem můžete pro každý řádek v souboru použít ke čtení všech řádků souboru a poté s nimi manipulovat. Právě jsme hovořili o dvou základních scénářích v tomto článku, nicméně tuto smyčku můžete použít i pro složitější problémy.