Różne sposoby czytania pliku w skrypcie Bash za pomocą pętli
 
                - 1217
- 69
- Pan Jeremiasz Więcek
W tym artykule dotyczy tego, jak czytać pliki w skryptach bash za pomocą podczas pętli. Czytanie pliku jest powszechną operacją w programowaniu. Powinieneś zapoznać się z różnymi metodami, a jaką metodą jest bardziej wydajna w użyciu. W Bash jedno zadanie można osiągnąć na wiele sposobów, ale zawsze istnieje optymalny sposób na wykonanie zadania i powinniśmy go śledzić.
Przed zobaczeniem, jak odczytać zawartość pliku za pomocą podczas pętli, Szybki podkład na temat pracy w pętli. Podczas gdy Loop ocenia warunek i itera nad danym zestawem kodów, gdy warunek jest prawdziwy.
podczas gdy [warunek] wykonaj blok kodu
Podzielmy podczas pętli składnia.
- podczas pętli powinno zacząć od czasu, po którym następuje słowo kluczowe, a następnie warunek.
- A stan powinno być zamknięte wewnątrz [] [] Lub [[]]. Warunek powinien zawsze zwrócić prawdziwe, aby pętla została wykonana.
- Rzeczywisty blok kodu zostanie umieszczony między Do I zrobione.
Liczba = 0, podczas gdy [[$ numer -le 10]] echo "Welcome $ liczba czasy" ((numer ++))
 Podczas pętli
 Podczas pętli To bardzo prosty przykład, w którym pętla Wykonuje się aż do NUMER nie jest większe niż 10 i drukuje instrukcję echo.
Wraz z chwila użyjemy Czytać polecenie do odczytania zawartości wiersza pliku po wierszu. Poniżej znajduje się składnia sposobu chwila I Czytać Polecenia są łączone. Teraz istnieją różne sposoby przekazywania pliku jako wejścia i zobaczymy je wszystkie.
# Składnia podczas odczytu zmiennej do wykonania kodu
Ruruk w Linux
Zwykle użyjemy polecenia CAT, aby wyświetlić zawartość pliku z terminalu. Ponadto, zbijemy moc wyjściową polecenie CAT do innych poleceń, takich jak grep, sort itp.
Podobnie użyjemy polecenie CAT tutaj, aby odczytać zawartość pliku i przejrzeć ją do chwila pętla. Do demonstracji używam /etc/passwd Plik, ale nie jest wskazane, aby zadzierać z tym plikami, więc weź kopię zapasową tego pliku i odtwarzaj go, jeśli tak chcesz.
Cat /itp. /Passwd | podczas czytania lread echo $ lread gotowe
 Ruruk w Linux
 Ruruk w Linux Rozbijmy to, co stanie się po przesłaniu powyższego kodu.
- cat /etc /passwd odczytuje zawartość pliku i przekazuje ją jako wejście przez rurę.
- Czytać polecenie odczytuje każdy wiersz przekazany jako wejście z polecenia CAT i przechowuje ją w LREAD zmienny.
- Czytać Polecenie będzie odczytać zawartość pliku do czasu Eol jest interpretowany.
Możesz także użyć innych poleceń, takich jak głowa, ogon i przewód do pobytu.
głowa -n 5 /etc /passwd | podczas czytania lread echo $ lread gotowe
 Polecenie głowy
 Polecenie głowy Przekierowanie wejściowe w Linux
Możemy przekierować zawartość pliku do podczas pętli Korzystanie z operatora przekierowania wejściowego (<).
podczas czytania lread echo $ lread gotowe < /etc/passwd | head -n 5
 Przekierowanie wejściowe
 Przekierowanie wejściowe Możesz także przechowywać nazwę pliku do zmiennej i przekazać operator przekierowania.
Filename = "/etc/passwd" podczas przeczytania lread do echo $ lread < $FILENAME
 Przechowuj nazwę pliku w zmiennej
 Przechowuj nazwę pliku w zmiennej Możesz także przekazać nazwy plików jako argument do swojego skryptu.
podczas czytania lread echo $ lread gotowe < $1 | head -n 5
 Przechowuj nazwę pliku jako argument
 Przechowuj nazwę pliku jako argument Wewnętrzny separator pola
Możesz pracować z różnymi typami formatów plików (CSV, tekst, JSON) i możesz podzielić zawartość pliku na podstawie niestandardowego ogranicznika. W takim przypadku możesz użyć „Wewnętrzny separator pola (IFS)”Aby podzielić zawartość pliku i przechowywać ją w zmiennych.
Pozwól mi pokazać, jak to działa. Spójrz na /etc/passwd plik, który ma dwukropek (:) jako ogranicznik. Możesz teraz podzielić każde słowo z linii i przechowywać je w osobnej zmiennej.
W poniższym przykładzie dzieliję /etc/passwd plik z okrężnicą jako mój separator i przechowywanie każdego podziału na różne zmienne.
While ifs = ":" Czytaj a b c d e f g do echo $ a echo $ b echo $ c echo $ d echo $ e echo $ f echo $ g gotowe < /etc/passwd
 Wewnętrzny separator pola
 Wewnętrzny separator pola Wyświetlałem tylko jedną linię podzieloną na powyższym zrzucie ekranu, biorąc pod uwagę rozmiar zrzutu ekranu.
Puste linie w Linux
Puste linie nie są ignorowane, gdy ty pętla Za pośrednictwem zawartości pliku. Aby to zademonstrować, utworzyłem przykładowy plik z poniższą zawartością. Istnieją 4 linie i kilka pustych linii, prowadząca biała, trwająca biała przestrzeń, postacie z zakładki w wierszu 2 i niektóre postacie ucieczki (\N I \T).
 Plik z pustymi wierszami
 Plik z pustymi wierszami podczas czytania lread echo $ lread gotowe < testfile
 Pusta linia nie ignorowana
 Pusta linia nie ignorowana Zobacz wynik, pusta linia nie jest ignorowana. Interesującą rzeczą do odnotowania jest to, w jaki sposób białe przestrzenie są przycięte przez Czytać Komenda. Prostym sposobem ignorowania pustych wierszy podczas czytania zawartości pliku jest użycie operatora testowego z -z flaga, która sprawdza, czy długość ciągu wynosi zero. Teraz powtórzmy ten sam przykład, ale tym razem z operatorem testowym.
Podczas czytania LRead do [[[[ ! -z $ lread]] następnie echo $ lRead fi gotowe < testfile
 Puste linie ignorowane
 Puste linie ignorowane Teraz z wyjścia można zobaczyć, jak puste linie są ignorowane.
Escape Postacie
Escape Postacie jak \N, \T, \C nie zostanie wydrukowany podczas czytania pliku. Aby to zademonstrować, używam tego samego przykładowego pliku, który ma kilka znaków ucieczki.
 Plik z znakami ucieczki
 Plik z znakami ucieczki podczas czytania lread echo $ lread gotowe < testfile
 Postać ucieczki w Linux
 Postać ucieczki w Linux Możesz zobaczyć z wyjściowych znaków ucieczki, straciły swoje znaczenie i tylko N I T są drukowane zamiast \N I \T. Możesz użyć -R Aby zapobiec interpretacji wstecznych.
Podczas czytania -r lread echo $ lread gotowe < testfile
 Zapobiegaj interpretacji wstecznych
 Zapobiegaj interpretacji wstecznych To wszystko dla tego artykułu. Chcielibyśmy wysłuchać od ciebie, jeśli są jakieś informacje zwrotne lub wskazówki. Twoja opinia pomaga nam tworzyć lepszą treść. Czytaj dalej i wspieraj.
- « LFCA Naucz się podstawowych poleceń zarządzania plikami w Linux - część 2
- Różne sposoby korzystania z polecenia kolumny w Linux »
 
                    