بش میں بغیر توسیع کے فائل کا نام پڑھیں۔

Read Filename Without Extension Bash



لینکس صارفین کو کئی مقاصد کے لیے باقاعدگی سے فائلوں کے ساتھ کام کرنے کی ضرورت ہے۔ بعض اوقات صارفین کو فائل کی ایکسٹینشن کو ہٹا کر صرف فائل کا بیس نام پڑھنے کی ضرورت ہوتی ہے۔ فائل کا نام اور توسیع کو مختلف طریقوں سے لینکس میں مختلف متغیرات پر الگ اور محفوظ کیا جاسکتا ہے۔ باش بلٹ ان کمانڈ اور شیل پیرامیٹر توسیع فائل کی توسیع کو ہٹانے کے لیے استعمال کی جا سکتی ہے۔ اس ٹیوٹوریل میں مذکورہ بالا طریقوں کو استعمال کرتے ہوئے بغیر توسیع کے فائل کا نام کیسے پڑھا جاسکتا ہے۔

فائل کا نام پڑھنے کے لیے 'بیس نام' کمانڈ استعمال کرنا۔

`basename` کمانڈ کا استعمال فائل کے نام کو ڈائریکٹری یا فائل کے راستے سے بغیر توسیع کے پڑھنے کے لیے کیا جاتا ہے۔







نحو:



بنیادی نامNAME[لاحقہ]

یا



بنیادی نامآپشن ... نام ...

یہاں ، NAME مکمل نام کے ساتھ فائل کا نام یا فائل کا نام رکھ سکتا ہے۔ SUFFIX اختیاری ہے اور اس میں فائل کی توسیع کا حصہ ہے جسے صارف ہٹانا چاہتا ہے۔ `basename` کمانڈ میں کچھ اختیارات ہیں جو ذیل میں بیان کیے گئے ہیں۔





اختیارات

نام۔ تفصیل
-کو یہ ایک سے زیادہ فائل ناموں کو راستے کے ساتھ یا بغیر راستے کے بطور کمانڈ دلائل منتقل کرنے کے لئے استعمال ہوتا ہے۔
یہ توسیع کو بطور لاحقہ منتقل کرنے کے لیے استعمال ہوتا ہے جسے ہٹانے کی ضرورت ہوتی ہے۔
کے ساتھ۔ یہ ایک سے زیادہ فائل کے نام ظاہر کرنے کے لیے استعمال کیا جاتا ہے ہر فائل کو null سے الگ کر کے۔
-مدد یہ 'بیسنیم' کمانڈ استعمال کرنے کی معلومات کو ظاہر کرنے کے لیے استعمال ہوتا ہے۔
- ورژن یہ ورژن کی معلومات ظاہر کرنے کے لیے استعمال ہوتا ہے۔

مثال -1: NAME اور SUFFIX استعمال کرنا۔

درج ذیل `بیس نام` کمانڈ فائل کے نام کو ایکسٹینشن کے ساتھ بازیافت کرے گا۔ SUFFIX کو اس کمانڈ سے خارج کر دیا گیا ہے۔ یہاں ، آؤٹ پٹ ہے۔ 'product.txt' .



$بنیادی نام /گھر/فہمیدہ/کوڈ/product.txt

اگر آپ بغیر کسی توسیع کے فائل کا نام بازیافت کرنا چاہتے ہیں تو آپ کو فائل کی توسیع بطور SUFFIX `basename` کمانڈ کے ساتھ فراہم کرنی ہوگی۔ یہاں ، توسیع .txt ہے۔ فائل سے ایکسٹینشن کو ہٹانے کے لیے درج ذیل کمانڈ چلائیں۔

$بنیادی نام /گھر/فہمیدہ/کوڈ/product.txt .txt

مثال 2: '-a' آپشن اور NAME کا استعمال۔

'بیس نام' کمانڈ کے '-a' آپشن کا استعمال اس مثال میں دکھایا گیا ہے۔ یہاں ، دو فائل کے راستے 'بیسنیم' کمانڈ کے ساتھ دلائل کے طور پر منظور کیے جاتے ہیں۔ توسیع کے ساتھ ہر فائل کا نام راستے سے بازیافت ہو گا اور نئی لائن کے ذریعے پرنٹ ہو گا۔

$بنیادی نام -کو /گھر/فہمیدہ/index.html/گھر/فہمیدہ/کوڈ/emp.txt

مثال 3: '-z' آپشن اور NAME کا استعمال۔

'-z' آپشن کو 'بیس نام' کمانڈ کے ساتھ استعمال کیا جاتا ہے تاکہ ایک سے زیادہ فائل ناموں کو نئی لائن کے بجائے کالعدم قیمت کے ساتھ پرنٹ کیا جا سکے۔ مندرجہ ذیل کمانڈ ایک ساتھ دو اختیارات استعمال کرتی ہے ، '-a' اور '-z'۔ یہاں ، دو فائل نام ، index.html اور emp.txt بغیر کسی جگہ یا نئی لائن کے پرنٹ کریں گے۔

$بنیادی نام - /گھر/فہمیدہ/index.html/گھر/فہمیدہ/کوڈ/emp.txt

مثال 4: '-s' آپشن اور NAME کا استعمال۔

مندرجہ ذیل کمانڈ کو SUFFIX کے متبادل کے طور پر استعمال کیا جا سکتا ہے۔ فائل کی توسیع کو فائل سے ایکسٹینشن کو ہٹانے کے لیے '-sh' آپشن کے ساتھ گزرنے کی ضرورت ہے۔ مندرجہ ذیل مثال ایکسٹینشن کو ہٹا دے گی ، '-sh' فائل سے ، 'addition.sh'۔

$بنیادی نام .sh کے علاوہ .sh

مثال 5: بغیر SUFFIX فائل کی توسیع کو ہٹا دیں۔

اگر آپ فائل کی توسیع نہیں جانتے ہیں جسے آپ فائل کے نام سے ہٹانا چاہتے ہیں ، تو یہ مثال آپ کو مسئلہ حل کرنے میں مدد دے گی۔ نام کی فائل بنائیں۔ read_file.sh کسی بھی ایکسٹینشن کا فائل نام بازیافت کرنے کے لیے درج ذیل کوڈ کے ساتھ۔ فائل کے نام سے کسی بھی قسم کی توسیع کو ہٹانے کے لیے اس مثال میں `sed` کمانڈ استعمال کیا جاتا ہے۔ اگر آپ اسکرپٹ چلاتے ہیں تو آؤٹ پٹ ہو جائے گی ' اوسط 'توسیع کو ہٹانے کے بعد' py '.

read_file.sh

#!/bin/bash
# فائل کا نام راستے کے ساتھ سیٹ کریں۔
فائل کا نام='/home/fahmida/code/average.py'
# فائل کا نام بغیر کسی توسیع کے 'بیس نام' اور 'sed' کمانڈ استعمال کرکے پڑھیں۔
باہر پھینک دیا '$ (basename '$ filename' | sed 's/ (.*) ..*/ 1/')'

اسکرپٹ چلائیں۔

$لشکرread_file.sh

مثال 6: فائل کی توسیع کو txt سے docx میں تبدیل کریں۔

بغیر توسیع کے فائل کا نام فائل کو ایک توسیع سے دوسری میں تبدیل کرنے کی ضرورت ہے۔ یہ مثال ظاہر کرتی ہے کہ آپ بش سکرپٹ میں `basename` کمانڈ کا استعمال کرکے تمام ٹیکسٹ فائلوں (.txt) کو ورڈ فائلز (.docx) میں کیسے بڑھا سکتے ہیں۔ نامی فائل بنائیں ، convert_file.sh مندرجہ ذیل کوڈ کے ساتھ. یہاں ، تمام ٹیکسٹ فائلوں کو پڑھنے کے لیے فار ان لوپ استعمال کیا جاتا ہے۔ .TXT موجودہ ڈائریکٹری سے توسیع۔ بغیر توسیع کے فائل کا نام 'بیس نام' کمانڈ کے ذریعہ پڑھا جاتا ہے اور لوپ کے ہر تکرار میں .docx ایکسٹینشن شامل کرکے اس کا نام تبدیل کیا جاتا ہے۔

convert_file.sh

#!/bin/bash
# لوپ موجودہ ڈائرکٹری سے ہر ٹیکسٹ فائل کو پڑھے گا۔
کے لیےفائل کا ناممیں 'ایل ایس *.TXT'
کیا
# تبادلوں سے پہلے ٹیکسٹ فائل کا نام پرنٹ کریں۔
باہر پھینک دیا تبدیلی سے پہلے فائل کا نام:$ filename'
# فائل txt کی توسیع کو docx میں تبدیل کریں۔
mv - '$ filename' '$ (بیس نام - '$ filename' .txt).docx '
ہو گیا

اسکرپٹ چلائیں۔

$لشکرconvert_file.sh

چیک کریں کہ ٹیکسٹ فائلیں 'ls' کمانڈ استعمال کرکے تبدیل کی گئی ہیں یا نہیں۔

$ایل ایس

مثال 7: بغیر شیل پیرامیٹر توسیع کا استعمال کرتے ہوئے فائل کا نام پڑھیں۔

شیل پیرامیٹر کی توسیع bash میں توسیع کے بغیر فائل کا نام پڑھنے کا ایک اور طریقہ ہے۔ یہ مثال شیل پیرامیٹر توسیع کے استعمال کو ظاہر کرتی ہے۔ مندرجہ ذیل کمانڈ فائل کے پاتھ نام کو متغیر ، $ میں محفوظ کرے گی۔ فائل کا نام .

$فائل کا نام='/var/usr/temp/myfile.tar.gz'

مندرجہ ذیل کمانڈ راستے سے ہر قسم کی ایکسٹینشن کو ہٹا دے گی اور بغیر کسی توسیع کے فائل کا راستہ متغیر میں محفوظ کرے گی ، $ فائل 1۔ .

$فائل 1='$ {filename ٪٪.*}'

درج ذیل کمانڈ فائل کے نام کو صرف راستے سے پرنٹ کرے گی۔ یہاں ، پیداوار ہوگی ' myfile '.

$باہر پھینک دیا '$ {file1 ##*/}'

اگر فائل کے نام میں دو ڈاٹ (.) کے ساتھ دو ایکسٹینشنز ہیں اور آپ فائل کی آخری ایکسٹینشن کو ہٹا کر فائل کا نام پڑھنا چاہتے ہیں تو آپ کو درج ذیل کمانڈ کو استعمال کرنا ہوگا۔ مندرجہ ذیل کمانڈ چلائیں جو فائل کے راستے کو متغیر میں محفوظ کریں ، $ فائل 2۔ فائل کی آخری توسیع کو ہٹا کر۔

$فائل 2='$ {filename٪.*}'

اب ، ایک ڈاٹ (.) ایکسٹینشن کے ساتھ فائل کا نام پرنٹ کرنے کے لیے درج ذیل کمانڈ چلائیں۔ یہاں ، آؤٹ پٹ ہوگی۔ myfile.tar.

$باہر پھینک دیا '$ {file2 ## * /}'

نتیجہ

مختلف مقاصد کے لیے بغیر توسیع کے فائل کا نام درکار ہے۔ بغیر توسیع کے فائل نام کے کچھ استعمالات کو اس مثال میں استعمال کیا گیا ہے جیسا کہ فائل کی تبدیلی۔ یہ ٹیوٹوریل ان صارفین کی مدد کرے گا جو فائل کے نام اور توسیع کو فائل کے راستے سے الگ کرنے کے طریقے سیکھنے میں دلچسپی رکھتے ہیں۔ یہاں دو طریقے بیان کیے گئے ہیں۔ صارف ان میں سے کسی بھی طریقے پر عمل کر کے فائل کا نام صرف فائل کے راستے سے نکال سکتا ہے۔