Commande MapFile Bash Linux

Commande MapFile Bash Linux
La commande Bash Shell MapFile est souvent connue comme un tableau de lecture. L'objectif principal est de lire les lignes d'entrée standard et de les stocker dans une variable de tableau indexée. MapFile doit également lire à partir de la substitution (<<) 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.

La commande tactile est utilisée pour créer, modifier et modifier des horodatages sur les fichiers du système d'exploitation UNIX / Linux. Ainsi, comme indiqué dans l'image, nous avons essayé l'instruction «Touch» dans notre shell pour créer un nouveau fichier texte. GNU Nano est un éditeur de ligne de commande intégré de base pour les systèmes d'exploitation UNIX / Linux. Tapez «Nano» après le symbole $, suivi du nom du fichier pour ouvrir ou créer un nouveau fichier.

$ touchez nouveau.SMS
$ nano nouveau.SMS

Exemple 1: Lisez à partir du fichier comme tableau

La commande «nano» dans le shell ouvre le «nouveau.Fichier txt »dans l'éditeur« Nano ». Nous avons tapé le texte un, deux et trois dans le fichier texte en trois lignes distinctes comme indiqué. Enregistrez ce fichier de données texte simple via le CTRL + S et fermez l'éditeur «Nano» via le raccourci Ctrl + X.

Il est temps d'utiliser l'instruction MapFile pour lire les données de texte juste ajoutées dans un formulaire de tableau. Les lignes de texte dans le nouveau.Le fichier txt est stocké comme les éléments du tableau dans la variable «var» à l'aide de la commande mapfile. Dans la deuxième ligne, la requête Echo est utilisée pour imprimer toutes les données sur chaque index d'un tableau stocké dans la variable «var» dans un format de tableau. De même, les lignes suivantes des codes d'instruction «Echo» sont utilisées pour afficher les données à un index spécifique, I.e., 0,1,2,3 d'un tableau séparément. Comme le tableau ne contient que 3 valeurs, le résultat de l'index 3 ne renvoie rien.

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

Exemple 2: lire les données de sortie dans un tableau

Nous pouvons également utiliser certaines données de déclaration de sortie d'une instruction bash au tableau à l'aide de l'instruction MAPFILE. Nous utilisons l'instruction PRINTF pour intégrer ses données de sortie dans un tableau «Arr.«Trois valeurs,« Ana »,« Paul »et« George », séparées par le caractère spécial de Break,« \ n », y seront stockés en utilisant l'instruction MapFile. Suivant cela, la première commande ECHO est utilisée pour afficher toutes les données dans un tableau. Les données qui se produisent sur chaque index d'un tableau «arr» s'affichent également dans les lignes de code suivantes via l'instruction «Echo» suivie des numéros d'index dans les crochets. Parce qu'il n'y a pas de données sur le troisième index d'un tableau, aucune sortie ne s'affiche à l'écran. Passons vers l'exemple suivant.

$ 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]

Exemple 03: Option MapFile -N

La commande de fichier de carte dispose d'options intégrées d'exécution. Le -Option n a été utilisé pour spécifier le nombre de valeurs du fichier de données à prendre comme entrée pour un tableau. Toutes les lignes doivent être copiées dans un tableau lorsque la valeur de n est nul. La première ligne de l'exemple ci-dessous utilise la commande de fichier de carte avec l'option -n option définie sur 2. Cela signifie qu'il lira les deux premières lignes du fichier dans un tableau appelé «var» comme valeurs d'index pour un tableau.

La commande echo affiche des données sur tous les index du tableau «var», i.e., 2 index, ce qui implique que la commande de fichier de carte copie les deux premières lignes du fichier avec l'option -N. L'utilisation de l'option «-n» avec la valeur 1 dans l'instruction MapFile ne lira qu'une seule ligne à partir du fichier, comme indiqué ci-dessous.

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

Exemple 04: Option MapFile -T

L'option «-T» est utilisée pour dépouiller / supprimer les nouvelles lignes d'un élément en la stockant dans un tableau. L'exemple ci-dessous montre l'exécution pratique de la commande -t. L'opérateur de substitution (<) 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 [@]"

Les exemples ci-dessous montrent comment imprimer les éléments individuels d'un tableau à l'aide d'index.

$ printf "% s \ n" "$ arr [0]"
$ printf "% s \ n" "$ arr [1]"
$ printf "% s \ n" "$ arr [2]"
$ printf "% s \ n" "$ arr [3]"

Dans l'exemple ci-dessous, la commande echo imprime tous les éléments de la variable de carte de carte, séparée par un espace.

$ printf “ana \ npaul \ ngeorge \ n” | (mapfile; echo «$ mapfile [@]»)

Nous pouvons le réparer et supprimer les ruptures de ligne en utilisant l'option -T de l'instruction MAPFILE.

$ printf “ana \ npaul \ ngeorge \ n” | (mapfile -t; echo «$ mapfile [@]»)

Conclusion

Cet article concernait l'utilisation de l'instruction Bash MapFile sur l'Ubuntu 20.04 système pour prendre toutes les données de texte d'entrée d'un tableau dans une variable et l'afficher selon cela. Nous avons essayé les instructions de MapFile avec des options «-n» et «-t» pour obtenir un format différent de sorties pour les tableaux à la coque bash.