כיצד להשתמש במערכי אינדקס ב-Bash

Kyzd Lhstms Bm Rky Yndqs B Bash



Bash מספקת תמיכה עבור מערכים באינדקס, שהם בעצם רשימות של אלמנטים שניתן לגשת אליהם באמצעות מספר האינדקס שלהם. מערכי אינדקס שימושיים במיוחד כאשר ברצונך לאחסן ולתפעל ערכים קשורים רבים, קרא עוד מאמר זה כדי ללמוד כיצד להשתמש במערכי אינדקס.

מהם מערכי אינדקס

מערכי אינדקס הם אוסף של אלמנטים ב-bash שניתן לגשת אליהם באמצעות אינדקס או מפתח. ניתן להשתמש במערכים אלה לאחסון ואחזור נתונים בסדר מסוים, מה שמקל על ניהול כמויות גדולות של נתונים. התחביר להכרזה על מערך אינדקס ב-bash הוא כדלקמן:

< array_name > = ( אלמנט1 אלמנט2 אלמנט3 ... )

כאן, array_name הוא שם המערך, ו-element1, element2, element3 וכן הלאה הם הערכים שיש לאחסן במערך. הערכים מופרדים על ידי רווח לבן ושימו לב שניתן גם להשתמש בפקודה declare כדי ליצור מערך.







כיצד להשתמש במערכי אינדקס ב-Bash

כדי ליצור מערך אינדקס ב-bash, אתה פשוט צריך להכריז על משתנה ולהקצות לו ערכים סגורים בסוגריים ומופרדים ברווחים. להלן מספר דוגמאות המדגימות כיצד להשתמש במערכים שנוספו לאינדקס ב-bash:



סדר מחדש של רשימה ב-Bash

אם יש לך רשימה של פריטים בסדר מסוים ואתה רוצה לסדר אותם מחדש בדרך אחרת. ניתן להשתמש במערך אינדקס כדי ליצור הזמנה חדשה עבור הפריטים, באופן הבא:



#!/bin/bash
פריטים = ( 'מנגו' 'אננס' 'תּוּת' 'דובדבן' 'ענבים' )
להזמין = ( 4 2 0 3 1 )
ל אני ב ' ${order[@]} '
לַעֲשׂוֹת
הֵד ${items[$i]}
בוצע

בדוגמה זו, אנו יוצרים מערך שנקרא פריטים עם חמישה אלמנטים. אנחנו גם יוצרים מערך אינדקס שנקרא order, שמציין סדר חדש לפריטים. לאחר מכן אנו עוברים בלולאה דרך מערך הסדר ומשתמשים בכל ערך כאינדקס כדי לאחזר את הפריט המתאים ממערך הפריטים ולהדפיס אותו.





סינון רשימה ב-Bash

אם יש לך רשימה של פריטים ואתה רוצה לסנן פריטים מסוימים על סמך תנאי. ניתן להשתמש במערך אינדקס כדי לעקוב אחר המדדים של הפריטים העומדים בתנאי, באופן הבא:



#!/bin/bash
פריטים = ( 'מנגו' 'אננס' 'תּוּת' 'דובדבן' 'ענבים' )
מדדים = ( )

ל אני ב ' ${!items[@]} '
לַעֲשׂוֹת
אם [ [ ${items[$i]} == * 'ר' * ] ]
לאחר מכן
מדדים+= ( $i )
לִהיוֹת
בוצע

ל אני ב ' ${מדדים[@]} '
לַעֲשׂוֹת
הֵד ${items[$i]}
בוצע

בדוגמה זו, אנו יוצרים מערך שנקרא פריטים עם חמישה אלמנטים. אנו יוצרים גם מערך אינדקס ריק הנקרא אינדקסים. לאחר מכן אנו עוברים בלולאה דרך מערך הפריטים ובודקים אם כל פריט מכיל את האות 'r'. אם כן, נוסיף את האינדקס שלו למערך המדדים. לבסוף, אנו עוברים בלולאה דרך מערך המדדים ומשתמשים בכל ערך כאינדקס כדי לאחזר את הפריט המתאים ממערך הפריטים ולהדפיס אותו.

ספירת התרחשויות בבאש

אם יש לך רשימה של פריטים ואתה רוצה לספור את מספר המופעים של כל פריט, אתה יכול להשתמש במערך אינדקס כדי לעקוב אחר הספירות והנה דוגמה להדגמה:

#!/bin/bash
פריטים = ( 'מנגו' 'אננס' 'תּוּת' 'דובדבן' 'ענבים' )
נחשב = ( )

ל אני ב ' ${!items[@]} '
לַעֲשׂוֹת
אם [ [ ! ' ${counts[@]} ' =~ ' ${items[$i]} ' ] ]
לאחר מכן
סופר+= ( ' ${items[$i]} 1' )
אַחֵר
אינדקס =$ ( הֵד ' ${counts[@]} ' | tr '' '\n' | אחיזה '^ ${items[$i]} ' | עם )
לספור =$ ( הֵד ' ${counts[$index-1]} ' | גזירה '' -f2 )
נחשב [ $index - 1 ] = ' ${items[$i]} $((ספירה+1) )'
לִהיוֹת
בוצע

ל לספור ב ' ${counts[@]} '
לַעֲשׂוֹת
הֵד ספירת $
בוצע

תחילה הוא מאתחל מערך שנקרא 'פריטים' עם רשימה של מחרוזות. ואז הוא מכריז על מערך ריק שנקרא 'ספירות'. נוצרת לולאת for כדי לחזור על כל פריט במערך 'פריטים' ולכל פריט היא בודקת אם היא כבר קיימת במערך 'ספירות'.

אם הוא לא קיים, הוא מוסיף את הפריט ואת הספירה של 1 למערך 'ספירות'. אם הוא קיים, הוא מגדיל את הספירה של אותו פריט במערך 'ספירות'. לבסוף, כדי להדפיס כל פריט והספירה המתאימה לו, נעשה שימוש אחר עבור לולאה. הפלט של קוד זה ידפיס את הספירה של כל פריט במערך 'פריטים', כאשר כפילויות ייספרו בנפרד.

עדכון רשימה ב-Bash

אם יש לך רשימה של פריטים ואתה רוצה להוסיף או למחוק ממנה פריטים אז אתה יכול להשתמש עבורה במערך אינדקס והנה דוגמה להדגמה:

#!/bin/bash
פריטים = ( 'מנגו' 'אננס' 'תּוּת' 'דובדבן' 'ענבים' )

# הוספת אלמנט חדש למערך המאונדקס באינדקס 2
פריטים [ 6 ] = 'תפוז'
# מחיקת האלמנט באינדקס 2 מהמערך המאונדקס
לא מוגדר פריטים [ 2 ]

# הדפסת המערך המעודכן
הֵד ' ${items[@]} '

בסקריפט מוגדר מערך 'פריטים' באינדקס עם חמישה אלמנטים ראשוניים. כדי להוסיף אלמנט חדש, הערך פשוט מוקצה לאינדקס הרצוי באמצעות מערך התחביר[index]=value. בסקריפט זה, 'כתום' מתווסף לאינדקס 6 של המערך. כדי למחוק אלמנט, אנו משתמשים בפקודה unset ואחריה באינדקס של האלמנט שברצוננו להסיר. במקרה זה, האלמנט באינדקס 2 ('תות') נמחק. המערך המעודכן מודפס לאחר מכן באמצעות התחביר '${array[@]}', שמרחיב את כל המערך.

סיכום

המערכים המאונדקסים הם מבנה שימושי של bash המאפשר לך לאחסן ולתפעל מספר ערכים באמצעות משתנה יחיד. על ידי הבנת התחביר והשימוש במערכים שנוספו לאינדקס, תוכל לכתוב תסריטי bash יעילים ואפקטיביים יותר.