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

Read Filename Without Extension Bash



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

שימוש בפקודה 'שם בסיס' לקריאת שם הקובץ

הפקודה 'שם שם' משמשת לקריאת שם הקובץ ללא הרחבה מספרייה או מנתיב קובץ.







תחביר:



שם בסיסשֵׁם[סִיוֹמֶת]

אוֹ



שם בסיסאופציה ... שם ...

כאן, NAME יכול להכיל את שם הקובץ או שם הקובץ עם הנתיב המלא. SUFFIX הוא אופציונלי והוא מכיל את חלק סיומת הקבצים שהמשתמש רוצה להסיר. לפקודה 'שם שם' יש כמה אפשרויות המתוארות להלן.





אפשרויות

שֵׁם תיאור
הוא משמש להעברת שמות קבצים מרובים עם נתיב או ללא נתיב כארגומנטים של פקודות.
הוא משמש להעביר את הסיומת כתוסף שצריך להסיר.
-עם הוא משמש להצגת שמות הקבצים המרובים על ידי הפרדת כל קובץ עם null.
-עֶזרָה הוא משמש להצגת פרטי השימוש בפקודה 'שם שם'.
-גִרְסָה הוא משמש להצגת פרטי הגרסה.

דוגמה 1: שימוש ב- NAME וב- SUFFIX

הפקודה הבאה 'שם בסיס' תחזיר את שם הקובץ עם הסיומת. SUFFIX מושמט מפקודה זו. כאן, הפלט הוא 'Product.txt' .



$שם בסיס /בית/פחמידה/קוד/product.txt

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

$שם בסיס /בית/פחמידה/קוד/product.txt .txt

דוגמה 2: שימוש באפשרות '-א' ו- NAME

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

$שם בסיס /בית/פחמידה/index.html/בית/פחמידה/קוד/emp.txt

דוגמה 3: שימוש באפשרות '-z' וב- NAME

האפשרות '-z' משמשת עם הפקודה 'שם שם' כדי להדפיס את שמות הקבצים המרובים עם ערך null במקום שורה חדשה. הפקודה הבאה משתמשת בשתי אפשרויות יחד, '-a' ו- '-z'. הנה, שני שמות קבצים, index.html ו emp.txt יודפס ללא כל רווח או קו חדש.

$שם בסיס /בית/פחמידה/index.html/בית/פחמידה/קוד/emp.txt

דוגמה -4: שימוש באפשרות '-s' ו- NAME

הפקודה הבאה יכולה לשמש כחלופה של SUFFIX עם 'שם בסיס'. סיומת הקובץ צריכה לעבור עם האפשרות '-sh' כדי להסיר את סיומת הקובץ מהקובץ. הדוגמה הבאה תסיר את הסיומת '-sh' מהקובץ, 'addition.sh'.

$שם בסיס .sh addition.sh

דוגמה 5: הסר סיומת קבצים ללא SUFFIX

אם אינך יודע את הסיומת של הקובץ שברצונך להסיר משם הקובץ, דוגמה זו תעזור לך לפתור את הבעיה. צור קובץ בשם read_file.sh עם הקוד הבא כדי לאחזר את שם הקובץ של כל סיומת. הפקודה `sed` משמשת בדוגמה זו להסרת כל סוג של הרחבה בשם הקובץ. אם אתה מריץ את הסקריפט, הפלט יהיה ' מְמוּצָע 'לאחר הסרת התוסף' py '.

read_file.sh

#!/bin/bash
# הגדר את שם הקובץ עם הנתיב
שם קובץ='/home/fahmida/code/average.py'
# קרא את שם הקובץ ללא סיומת באמצעות הפקודה 'שם שם' ו- 'sed'
זרק '$ (שם בסיס '$ קובץ' | sed 's/ (.*) ..*/ 1/')'

הפעל את התסריט.

$לַחֲבוֹטread_file.sh

דוגמה 6: המרת סיומת קבצים מ- txt ל- docx

שם קובץ ללא סיומת צריך להמיר את הקובץ מתוסף אחד למשנהו. דוגמה זו מראה כיצד ניתן לשנות את הסיומת של כל קבצי הטקסט (.txt) לקובצי word (.docx) באמצעות הפקודה 'שם שם' בתסריט bash. צור קובץ בשם, convert_file.sh עם הקוד הבא. כאן, לולאת in-in משמשת לקריאת כל קבצי הטקסט באמצעותם .טקסט הרחבה מהספרייה הנוכחית. שם הקובץ ללא סיומת נקרא על ידי הפקודה `basename 'ושמו שונה על ידי הוספת סיומת .docx בכל איטרציה של הלולאה.

convert_file.sh

#!/bin/bash
# הלולאה תקרא כל קובץ טקסט מהספרייה הנוכחית
לשם קובץב 'ls *.טקסט'
לַעֲשׂוֹת
# הדפס את שם קובץ הטקסט לפני ההמרה
זרק 'שם קובץ לפני ההמרה:$ קובץ'
# שנה את הסיומת של קובץ txt ל- docx
mv - '$ קובץ' '$ (שם בסיס - '$ קובץ' .txt).docx '
בוצע

הפעל את התסריט.

$לַחֲבוֹטconvert_file.sh

בדוק אם קבצי הטקסט מומרים או לא באמצעות הפקודה `ls`.

$ls

דוגמה 7: קרא את שם הקובץ ללא הרחבה באמצעות הרחבת פרמטר Shell

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

$שם קובץ='/var/usr/temp/myfile.tar.gz'

הפקודה הבאה תסיר את כל סוגי הסיומות מהנתיב ותשמור את נתיב הקובץ ללא סיומת במשתנה, $ file1 .

$קובץ 1='$ {שם קובץ %%.*}'

הפקודה הבאה תדפיס את שם הקובץ רק מהנתיב. כאן, הפלט ' המסמך שלי '.

$זרק '$ {file1 ##*/}'

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

$קובץ 2='$ {שם קובץ%.*}'

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

$זרק '$ {file2 ## * /}'

סיכום

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