Bash: podczas czytania linii

Bash While Read Line



Kiedy pracujesz ze skryptami basha, czasami możesz potrzebować czytać plik wiersz po wierszu. Wyjaśnijmy na przykładzie. Masz pewne dane w pliku tekstowym, które powinny zostać wykonane lub przetworzone za pomocą skryptu. Tak więc uruchomienie skryptu bash w celu przetworzenia pliku tekstowego jest zupełnie inne. Musisz postępować zgodnie z określoną składnią, aby czytać plik wiersz po wierszu. Ten artykuł pomoże ci odczytać linię z pliku za pomocą pętli while w Bash.

Podstawowa składnia while read line

Poniższa składnia jest używana przez powłokę bash do odczytu pliku za pomocą pętli while:







podczas czytać -rlinia;
robić
wyrzucił '$linia';
Gotowe <plik.wejściowy

Opcja „-r” we wspomnianej powyżej składni przekazana do polecenia read, która zapobiega interpretacji znaku ucieczki odwrotnego ukośnika. Opcja „input_file” reprezentuje nazwę pliku, do którego chcesz uzyskać dostęp za pomocą polecenia „odczytaj”.



Wewnętrzny separator pól w skrócie IFS może być użyty przed ustawieniem polecenia odczytu na łańcuch pusty, który zapobiega przycinaniu początkowych lub końcowych białych znaków.



podczas IFS=czytać -rlinia;
robić
wyrzucił $linia;
Gotowe <plik.wejściowy

Otwórz terminal za pomocą skrótu Ctrl + Alt + t, a następnie uruchom na nim następujące polecenia.





Przykład nr 1: Odczyt pliku linia po linii

Weźmy przykład, w którym załóżmy, że mamy plik o nazwie OS.txt zawierający nazwy wszystkich ważnych dystrybucji Linuksa. Jeśli chcesz odczytać plik bez użycia polecenia „cat”, możesz w tym celu wykonać następujące polecenie, aby wykonać określone zadanie. Wykorzystamy pętlę while, która odczyta każdy wiersz z pliku OS.txt i zapisze zawartość każdego kroku w zmiennej $line, którą można później wyświetlić.

Wklej następujące nazwy dystrybucji Linuksa do pliku OS.txt



CentOS
Ubuntu
Debiana
LinuxMint $podczas czytaćlinia;
robić
wyrzucił $linia;
Gotowe <OS.txt


Z powyższego polecenia otrzymasz następującą odpowiedź w oknie terminala:

Przykład nr 2: Odczytywanie pliku za pomocą skryptu bash

Utwórz plik bash, a następnie dodaj poniższy kod w tym pliku, aby odczytać zawartość pliku. Możesz zapisać poprzedni plik tekstowy w nowej zmiennej $nazwapliku, a zmienna $n jest używana do przechowywania wartości każdego wiersza. Teraz za pomocą pętli while odczytamy każdy wiersz z pliku o określonym numerze wiersza.

#!/kosz/bash
Nazwa pliku='OS.txt'
n=1
podczas czytaćlinia;
robić
# do przeczytania każdej linii
wyrzucił Linia dystrybucji OS nr.$n:$linia'
n= $((n+1))
Gotowe < $nazwa pliku

Zapisz plik pod nazwą OSinfo.sh i wpisz następujące polecenie na terminalu, aby uruchomić powyższy skrypt bash.

$grzmotnąćOSinfo.sh

Teraz uruchom cat polecenie, aby wyświetlić oryginalną zawartość pliku.

$KotOS.txt

Alternatywna metoda odczytu plików

Korzystanie z przekazywania nazwy pliku z polecenia

W pliku bash musisz dodać następujący skrypt kodu. W tym skrypcie jako argument musimy przyjąć nazwę pliku. Najpierw wartość argumentu jest odczytywana przez zmienną $1, która ma nazwę pliku do odczytu. Sprawdzi, czy nazwa pliku istnieje w określonej lokalizacji, a następnie za pomocą pętli while odczyta plik wiersz po wierszu, podobnie jak w poprzednim przykładzie.

#!/kosz/bash
Nazwa pliku=1 zł
podczas czytaćlinia;robić
# czytanie każdej linii
wyrzucił $linia
Gotowe < $plik.tekst

Zapisz powyższy skrypt pod nazwą „Readline.sh” i wykonaj następujące polecenie na terminalu, aby uruchomić wyżej wymieniony skrypt:

W powyższym wyniku zauważysz, że plik „OSinfo.txt” jest przekazywany jako argument, a zawartość „OSinfo.txt” zostanie wyświetlona po usunięciu dodatkowych spacji. Możesz wyświetlić oryginalną zawartość pliku, uruchamiając „cat OSinfo.txt”.

Wniosek

W tym artykule omówiliśmy, jak czytać wiersze za pomocą pętli while w programowaniu basha. Zaimplementowaliśmy różne metody za pomocą skryptu bash lub możesz po prostu użyć pliku tekstowego, aby wykonać zadanie odczytu pliku wiersz po wierszu. Jeśli chcesz dowiedzieć się więcej o przykładach, to używając powyższej składni możesz również wykonać w swoim systemie. Mam nadzieję, że podobał Ci się ten samouczek i będzie dla Ciebie wyjątkowy. Daj znać w przypadku jakiegokolwiek błędu.