חלץ את שם הקובץ וההרחבה ב-Bash

מבוא

ישנן סיבות רבות מדוע אולי תרצה לחלץ את שם הקובץ והסיומת של קובץ ב-Bash:

  • כדי לשנות את שם הקובץ או הסיומת – ייתכן שתרצה לחלץ את שם הקובץ או הסיומת כדי לשנות אותם, כגון הוספת קידומת או סיומת לשם הקובץ, או שינוי סיומת הקובץ.

  • כדי ליצור קובץ עם שם ייחודי – ייתכן שתרצה לחלץ את שם הקובץ והסיומת כדי ליצור קובץ חדש עם שם ייחודי, כגון על ידי הוספת חותמת זמן או מספר אקראי לשם הקובץ.

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

  • כדי לחלץ מידע משם הקובץ או הסיומת – ייתכן שתרצה לחלץ את שם הקובץ או הסיומת כדי לחלץ מהם מידע, כגון התאריך או סוג הקובץ.

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

שיטה 1: שימוש ב- שם בסיס פיקוד

השמיים basename ניתן להשתמש בפקודה כדי לחלץ את שם הקובץ והסיומת מנתיב קובץ:

filename=$(basename /path/to/file.txt)
echo $filename

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

אתה יכול גם להשתמש dirname פקודה כדי לחלץ את נתיב הספרייה בנפרד:

directory=$(dirname /path/to/file.txt)
echo $directory

יתרונות:
  • פשוט לשימוש
  • מטפל נכון בשמות קבצים עם רווחים
חסרונות:
  • מחלץ רק את שם הקובץ ולא יכול לחלץ את התוסף בנפרד ללא עיבוד נוסף

שיטה 2: שימוש בהרחבת פרמטרים

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

filepath="/path/to/file.txt"
filename=${filepath##*/}
echo $filename

אתה יכול גם להשתמש בהרחבת פרמטרים כדי לחלץ את התוסף בנפרד:

extension=${filename##*.}
echo $extension

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

שיטה 3: שימוש ב- awk הפקודה

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

filepath="/path/to/file.txt"
filename=$(echo $filepath | awk -F/ '{print $NF}')
echo $filename

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

אתה יכול גם להשתמש awk כדי לחלץ את התוסף בנפרד:

extension=$(echo $filename | awk -F. '{print $NF}')
echo $extension

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

סיכום

בסך הכל, חילוץ שם הקובץ והסיומת של קובץ ב-Bash יכולה להיות טכניקה שימושית לעבודה עם קבצים ולביצוע משימות שונות במעטפת Bash.

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

בול זמן:

עוד מ Stackabuse