Warunki wstępne
Upewnij się, że masz zainstalowany i skonfigurowany system oparty na Linuksie. Będziemy pracować nad Ubuntu 20.04 System Linux. Zaloguj się z konta użytkownika Ubuntu, aby rozpocząć pracę w systemie IFS. Będzie lepiej, jeśli zalogujesz się z konta użytkownika root. Po zalogowaniu uruchom terminal wiersza poleceń w swoim systemie z obszaru Aktywność.
Przykład 01: IFS dzieli ciąg znaków używając spacji jako wartości
W naszym pierwszym przykładzie zrozumiemy koncepcję dzielenia ciągu w bash przy użyciu spacji jako wartości ogranicznika za pomocą zmiennej IFS. Najpierw musimy stworzyć plik bash w naszym systemie. Możemy tworzyć nowe pliki w naszym systemie Linux za pomocą polecenia „dotknij”. Jak pokazano poniżej, utworzyliśmy plik bash 'plik1.sh” za pomocą instrukcji „touch”:
$ dotknij plik1.cii
Otwórz katalog domowy systemu Linux za pomocą ikony folderu wyświetlanej w lewym rogu systemu Ubuntu 20.04 pulpit. Znajdziesz nowo utworzony plik bash „plik1.sh” w tym. Otwórz plik „plik1.sh” i wpisz poniższy skrypt. Najpierw zdefiniowaliśmy ciąg o nazwie „str” z pewną wartością ciągu. Następnie definiujemy zmienną ogranicznika IFS jako zmienną, której wartością jest spacja. Następnie użyliśmy instrukcji read, aby zapisać i odczytać podzielone dane do tablicy „strarr” za pomocą flagi „-a”. Instrukcja „echo” służy do drukowania wiersza ciągu wraz z liczbą wszystkich słów tablicy za pomocą „$#strarr[*]”. Pętla „for” służy do drukowania wartości tablicy w formie podzielonej za pomocą zmiennej „var”. Odwrotny ukośnik „\n” został użyty w wierszu wydruku wraz ze zmienną „var”, aby dać podział jednego wiersza po każdej wartości tablicy. Zapisz skrypt za pomocą klawisza „Ctrl+S” i zamknij plik, aby przejść dalej.
Wróć na stronę terminala. Teraz sprawdzimy wynik powyższego kodu. W tym celu użyjemy polecenia „bash” wraz z nazwą pliku „plik1.sh”, aby wykonać to, co pokazano poniżej. Najpierw wyświetlał linię wspomnianą w wyrażeniu „echo” wraz z liczbą słów tablicy. Następnie wyświetlał wszystkie wartości tablicy za pomocą pętli „for” podzielonej przez IFS.
$bash plik1.cii
Przykład 02: IFS dzieli ciąg znaków, używając znaku jako wartości
W powyższym przykładzie widziałeś, jak podzielić zmienne łańcuchowe na części, używając spacji jako separatora IFS. Teraz użyjemy znaku, aby podzielić łańcuch za pomocą ogranicznika IFS. Otwórz terminal poleceń i utwórz nowy plik bash „file2.sh” w katalogu domowym systemu Linux za pomocą polecenia „touch” w następujący sposób:
$ dotknij plik2.cii
Otwórz katalog domowy swojego systemu Linux. Znajdziesz w nim swój nowo utworzony plik. Otwórz nowo utworzony plik i napisz poniższy kod bash. W wierszu 3 zainicjowaliśmy instrukcję „echo”, aby wydrukować wiersz. Następna linia odczytuje dane wejściowe podane przez użytkownika w terminalu za pomocą słowa kluczowego ”read”. Następnie zdefiniowaliśmy separator „IFS” i ustawiliśmy przecinek „” jako jego wartość znakową. Określono inną instrukcję „read” do odczytywania i zapisywania wartości rozdzielonych przecinkami ciągu, który jest wprowadzany przez użytkownika do tablicy „strarr”. W końcu zainicjowaliśmy trzy instrukcje echo, aby wydrukować wartości podziału oddzielone przecinkami jako zmienne, jak pokazano na obrazku. Zapisz i zamknij ten plik.
Teraz musimy wykonać ten zapisany plik. Wykonaj poniższe polecenie bash, a następnie nazwę pliku w terminalu, aby to zrobić. Musisz dodać wartość ciągu, która musi zawierać przecinek „”, w wartościach i nacisnąć przycisk Enter. Teraz Twoje dane zostały zapisane w tablicy „strarr”. Ostatnie trzy wiersze pokazują dane wyjściowe stwierdzeń „echa”. Jak widać, każdy tekst przed i po przecinku został użyty jako osobna wartość.
$bash plik2.cii
Przykład 03: ciąg podziału IFS
Oba poprzednie przykłady zrobiliśmy w pliku bash. Zobaczymy teraz ilustrację używania „IFS” bez tworzenia pliku bash. Aby to zrobić, otwórz powłokę poleceń. Najpierw musimy utworzyć ciąg „var” zawierający w nim wartość ciągu. Ten ciąg zawiera przecinki po każdym słowie.
$ var=”Cześć, mam 25 lat, mam lat”.”Następnie zainicjuj zmienną „IFS” z przecinkiem jako wartością ogranicznika.
$ IFS=,Następnie użyliśmy pętli „for”, aby wyszukać każde słowo ze zmiennej „var” oddzielone przecinkiem ogranicznika IFS i wydrukować je za pomocą instrukcji „echo”.
$ za ja w $var>do
>echo [$i]
>Gotowe
Otrzymasz wynik poniżej. Pokaże każde słowo zmiennej łańcuchowej „var” w nowym wierszu z powodu przecinka ogranicznika „”, używanego jako znak podziału.
Wniosek:
W tym przewodniku poznałeś różne metody dzielenia wartości wejściowych w bash, e.sol., ze spacją lub ze znakiem. Mamy nadzieję, że ilustracje wymienione w tym przewodniku pomogą Ci złamać każdy ciąg znaków za pomocą ogranicznika IFS.