Bash היא מעטפת שורת פקודה רבת עוצמה שנמצאת בשימוש נפוץ במערכות הפעלה לינוקס ויוניקס. משימה נפוצה אחת בעבודה עם קבצים ב-Bash היא לחלץ את שם הקובץ והסיומת מנתיב קובץ. מאמר זה ידון כיצד לחלץ את שם הקובץ והסיומת ב-Bash ויספק דוגמאות כיצד להשתמש בערכים אלו בסקריפטים שלך.
חילוץ שם הקובץ והסיומת ב-Bash
ישנן מספר דרכים לחלץ את שם הקובץ והסיומת ב-Bash, להלן שלוש שיטות נפוצות:
1: שימוש בפקודה Basename
ה שם בסיס הפקודה מחזירה את שם הקובץ מנתיב קובץ ומחלצת את שם הקובץ והסיומת. אתה יכול להשתמש ב שם בסיס פקודה עם ה -סִיוֹמֶת אפשרות, אשר מסירה את הסיומת שצוינה משם הקובץ כמו בקוד הנתון להלן:
#!/bin/bash
# נתיב קובץ לדוגמה
file_path = '/path/to/file.txt'
# חלץ את שם הקובץ
שם קובץ =$ ( שם בסיס $file_path )
# חלץ סיומת
סיומת = ' ${filename##*.} '
הֵד 'שם קובץ: $filename '
הֵד 'סיומת: $extension '
2: שימוש בהרחבת הפרמטרים
ה הרחבת פרמטרים תחביר הוא תכונה רבת עוצמה של Bash המאפשרת לך לתפעל מחרוזות. כדי לחלץ את שם הקובץ והסיומת באמצעות הרחבת פרמטרים, אתה יכול להשתמש ב- ${parameter##word} תחביר, שמסיר את ההתאמה הארוכה ביותר של התבנית שצוינה מתחילת הפרמטר כמו בקוד שלהלן:
#!/bin/bash# נתיב קובץ לדוגמה
file_path = '/path/to/file.txt'
# חלץ את שם הקובץ
שם קובץ = ' ${file_path##*/} '
# חלץ סיומת
סיומת = ' ${filename##*.} '
הֵד 'שם קובץ: $filename '
הֵד 'סיומת: $extension '
3: שימוש במשתנה IFS (מפריד שדות פנימי).
ה משתנה IFS משמש את Bash כדי לפצל מחרוזות לשדות על ידי הגדרת ה- משתנה IFS למפריד הנתיבים ('/'). אתה יכול לחלץ את שם הקובץ והסיומת מנתיב קובץ דרך משתנה זה באמצעות הקוד הנתון להלן:
#!/bin/bash# נתיב קובץ לדוגמה
file_path = '/path/to/file.txt'
# הגדר את IFS ל-'/'
IFS = '/' לקרוא -ר -א חלקים <<< ' $file_path '
# חלץ את שם הקובץ
שם קובץ = ' ${parts[-1]} '
# חלץ סיומת
סיומת = ' ${filename##*.} '
הֵד 'שם קובץ: $filename '
הֵד 'סיומת: $extension '
סיכום
חילוץ שם הקובץ והסיומת מנתיב קובץ היא משימה נפוצה בעבודה עם קבצים ב-Bash. מאמר זה דן בשלוש שיטות נפוצות לחילוץ שם הקובץ והסיומת ב-Bash. על ידי שימוש ב שם בסיס פקודה, ה הרחבת פרמטרים תחביר, או ה משתנה IFS , תוכל לחלץ במהירות ובקלות את ערכי שם הקובץ והסיומת מנתיב קובץ.