Mapfile Bash Linux Command

Mapfile Bash Linux Command
Polecenie mapy mapy bash jest często znane jako tablica czytania. Głównym celem jest odczytanie standardowych linii wejściowych i przechowywanie w indeksowanej zmiennej tablicy. Mapfile musi również odczytać z podstawienia (<<) rather than a pipe. In addition, as compared to a read loop, bash Mapfile is a much faster and more convenient solution. It returns 1 if the execution of the command gets successful and 0 in case it is not successful. If we don't specify an array name, the bash Mapfile variable will be targeting the array variable by default. Thus, we have decided to cover some examples using the mapfile instruction on the bash.

Polecenie dotykowe służy do tworzenia, zmiany i edytowania znaczników czasu na plikach w systemie operacyjnym UNIX/LINUX. Tak więc, jak pokazano na obrazie, wypróbowaliśmy instrukcję „dotyk” w naszej powładzie, aby utworzyć nowy plik tekstowy. GNU Nano to podstawowy wbudowany edytor wiersza poleceń dla systemów operacyjnych UNIX/LINUX. Wpisz „Nano” po symbolu $, a następnie nazwa pliku do otwarcia lub utworzenia nowego pliku.

$ dotyk nowy.tekst
$ nano nowe.tekst

Przykład 1: Odczyt z pliku jako tablica

Komenda „Nano” w skorupce otwiera „nowe.plik txt ”w edytorze„ nano ”. Wpisaliśmy tekst jeden, dwa i trzy w pliku tekstowym w trzech osobnych wierszach, jak pokazano. Zapisz ten prosty plik danych tekstowych za pomocą Ctrl+S i zamknij edytor „Nano” za pomocą skrótu CTRL+X.

Czas użyć instrukcji Mapfile, aby odczytać właśnie dodane dane tekstowe do formularza tablicy. Linie tekstowe w nowym.plik txt jest przechowywany jako elementy tablicy w zmiennej „var” za pomocą polecenia mapfile. W drugim wierszu zapytanie echo służy do drukowania wszystkich danych na każdym indeksie tablicy przechowywanej w zmiennej „var” w formacie tablicy. Podobnie kolejne wiersze kodów instrukcji „echo” są używane do wyświetlania danych w określonym indeksie, i.mi., 0,1,2,3 tablicy osobno. Ponieważ tablica zawiera tylko 3 wartości, zatem wynik indeksu 3 nic nie zwraca.

$ mapfile var < new.txt
$ echo $ var [@]
$ echo $ var [0]
$ echo $ var [1]
$ echo $ var [2]
$ echo $ var [3]

Przykład 2: Przeczytaj dane wyjściowe do tablicy

Możemy również skorzystać z danych wyjściowych instrukcji z instrukcji BASH do tablicy za pomocą instrukcji map plik. Korzystamy z instrukcji PrintF, aby uzyskać jego dane wyjściowe do tablicy „ARR.„Trzy wartości,„ Ana ”,„ Paul ”i„ George ”, oddzielone przez Line Break Special Charter„ \ N ”, będą przechowywane w nim za pomocą instrukcji map plik. Następnie pierwsze polecenie Echo służy do wyświetlania wszystkich danych w tablicy. Dane występujące na każdym indeksie tablicy „ARR” są wyświetlane podobnie w następnych wierszach kodu za pomocą instrukcji „Echo”, a następnie liczb indeksu w nawiasach kwadratowych. Ponieważ nie ma danych na temat trzeciego indeksu tablicy, na ekranie nie wyświetlane jest wyjście. Przejdźmy do następnego przykładu.

$ mapfile arr < <(printf “Ana \nPaul \n George\n”)
$ echo $ var [@]
$ echo $ var [0]
$ echo $ var [1]
$ echo $ var [2]
$ echo $ var [3]
$ echo $ var [0]

Przykład 03: opcja mapfile -n

Polecenie pliku MAP ma wbudowane opcje wykonania. -n opcja został wykorzystany do określenia liczby wartości z pliku danych, które należy traktować jako dane wejściowe dla tablicy. Wszystkie linie należy skopiować do tablicy, gdy wartość n wynosi zero. Pierwszy wiersz w poniższym przykładzie używa polecenia pliku mapy z opcją -n ustawioną na 2. Oznacza to, że odczytuje pierwsze dwa wiersze z pliku do tablicy o nazwie „var” jako wartości indeksu dla tablicy.

Polecenie Echo wyświetla dane na wszystkich indeksach tablicy „var”, i.mi., 2 indeksy, co sugeruje, że polecenie pliku mapy kopiuje pierwsze dwa wiersze z pliku z opcją -n. Korzystanie z opcji „-n” z wartością 1 w instrukcji mapy plik będzie odczytywał tylko pojedynczy wiersz z pliku, jak pokazano poniżej.

$ mapfile -n var < new.txt
$ echo $ var [@]
$ mapfile -n 1 var < new.txt
$ echo $ var [@]

Przykład 04: opcja mapfile -t

Opcja „-T” służy do rozebrania/usuwania nowych linii z elementu poprzez przechowywanie go w tablicy. Poniższy przykład pokazuje praktyczne wykonanie polecenia -T. Operator zastępczy (<) is used to populate the data into an array named “Arr.” The Mapfile instruction receives standard input strings, i.e., “Ana,” “Paul,” and “George,” from the printf statement and appends newlines (-t) to each line. When we run the entire command, mapfile silently scans the text lines and places each line into its specific array variable. The use of the printf statement is simply showing us that the string elements have been considered as array elements while “\n” has been used to give the line break in the shell.

$ mapfile -t arr< <(printf “Ana \nPaul \nGeorge\n”)
$ printf „%s \ n” „$ arr [@]”

Poniższe przykłady pokazują, jak wydrukować poszczególne elementy tablicy za pomocą indeksów.

$ printf „%s \ n” „$ ARR [0]”
$ printf „%s \ n” „$ arr [1]”
$ printf „%s \ n” „$ arr [2]”
$ printf „%s \ n” „$ arr [3]”

W poniższym przykładzie polecenie echo drukuje wszystkie elementy mapy zmiennej tablicy, oddzielone przestrzenią.

$ printf „ana \ npaul \ ngeorge \ n” | (mapFile; echo „$ mapFile [@]”)

Możemy to naprawić i usunąć pęknięcia linii za pomocą opcji -t instrukcji map plik.

$ printf „ana \ npaul \ ngeorge \ n” | (mapFile -t; echo „$ mapFile [@]”)

Wniosek

Ten artykuł dotyczył wykorzystania instrukcji Bash Mapfile na Ubuntu 20.04 System, aby pobrać dowolne dane tekstowe z tablicy w ramach jakiejś zmiennej i wyświetlić je zgodnie z tym. Wypróbowaliśmy instrukcję mapy z opcjami „-n” i „-t”, aby uzyskać inny format wyjściowych dla tablic w powładzie Bash.