Baca nama fail tanpa pelanjutan di Bash

Read Filename Without Extension Bash



Pengguna Linux perlu bekerja dengan fail secara berkala untuk banyak tujuan. Kadang kala pengguna hanya perlu membaca nama asas fail hanya dengan membuang pelanjutan fail. Nama fail dan peluasan dapat dipisahkan dan disimpan pada pemboleh ubah yang berlainan di Linux dengan pelbagai cara. Perintah built-in Bash dan pengembangan parameter shell dapat digunakan untuk membuang peluasan fail. Bagaimana nama fail tanpa pelanjutan dapat dibaca dengan menggunakan cara yang disebutkan di atas dijelaskan dalam tutorial ini.

Menggunakan perintah `basename` untuk membaca nama fail

Perintah `basename` digunakan untuk membaca nama fail tanpa perluasan dari direktori atau jalur fail.







Sintaks:



nama asasNAMA[SUFFIX]

atau



nama asasPILIHAN ... NAMA ...

Di sini, NAME boleh mengandungi nama fail atau nama fail dengan jalan penuh. SUFFIX adalah pilihan dan mengandungi bahagian peluasan fail yang ingin dikeluarkan oleh pengguna. Perintah `basename` mempunyai beberapa pilihan yang dijelaskan di bawah.





Pilihan

Nama Penerangan
-untuk Ia digunakan untuk melewati beberapa nama fail dengan jalan atau tanpa jalur sebagai argumen perintah.
-s Ini digunakan untuk meneruskan peluasan sebagai akhiran yang perlu dikeluarkan.
-Dengan Ini digunakan untuk menampilkan beberapa nama file dengan memisahkan setiap file dengan null.
- menolong Ini digunakan untuk menampilkan maklumat penggunaan perintah `basename`.
–Perubahan Ia digunakan untuk memaparkan maklumat versi.

Contoh-1: Menggunakan NAMA dan SUFFIX

Perintah `basename` berikut akan mengambil nama fail dengan peluasan. SUFFIX dihilangkan dari arahan ini. Di sini, outputnya ‘Product.txt’ .



$nama asas /kediaman/fahmida/kod/produk.txt

Sekiranya anda ingin mendapatkan semula nama fail tanpa pelanjutan, maka anda harus memberikan pelanjutan fail sebagai SUFFIX dengan perintah `basename`. Di sini, pelanjutannya adalah .txt. Jalankan arahan berikut untuk membuang pelanjutan dari fail.

$nama asas /kediaman/fahmida/kod/produk.txt .txt

Contoh-2: Menggunakan pilihan '-a' dan NAMA

Penggunaan arahan ‘-a’ untuk nama basename ditunjukkan dalam contoh ini. Di sini, dua jalur fail dilewatkan sebagai argumen dengan perintah `basename`. Setiap nama fail dengan peluasan akan diambil dari jalan dan dicetak mengikut baris baru.

$nama asas -untuk /kediaman/fahmida/indeks.html/kediaman/fahmida/kod/emp.txt

Contoh-3: Menggunakan pilihan '-z' dan NAMA

Pilihan ‘-z’ digunakan dengan perintah `basename` untuk mencetak beberapa nama fail dengan nilai null dan bukannya baris baru. Perintah berikut menggunakan dua pilihan bersama, ‘-a’ dan ‘-z’. Di sini, dua nama fail, indeks.html dan emp.txt akan dicetak tanpa ruang atau barisan baru.

$nama asas -tempat /kediaman/fahmida/indeks.html/kediaman/fahmida/kod/emp.txt

Contoh-4: Menggunakan pilihan '-s' dan NAMA

Perintah berikut dapat digunakan sebagai alternatif SUFFIX dengan `basename`. Sambungan fail perlu diteruskan dengan pilihan ‘-sh’ untuk membuang pelanjutan fail dari fail. Contoh berikut akan membuang peluasan, ‘-sh’ dari fail, ‘Επιπλέον.sh’.

$nama asas -s.sh tambahan.sh

Contoh-5: Buang peluasan fail tanpa SUFFIX

Sekiranya anda tidak mengetahui peluasan fail yang ingin anda alih keluar dari nama fail, maka contoh ini akan membantu anda menyelesaikan masalah tersebut. Buat fail bernama baca_file.sh dengan kod berikut untuk mendapatkan nama fail sebarang peluasan. Perintah `sed` digunakan dalam contoh ini untuk membuang sebarang jenis peluasan dari nama fail. Sekiranya anda menjalankan skrip, outputnya akan menjadi ' rata-rata 'Setelah mengeluarkan pelanjutan' py '.

baca_file.sh

#! / bin / bash
# Tetapkan nama fail dengan jalan
nama fail='/home/fahmida/code/average.py'
# Baca nama fail tanpa pelanjutan dengan menggunakan perintah 'basname' dan `sed`
membuang '$ (nama asas '$ nama fail' | sed 's / (. * ) .. * / 1 / ')'

Jalankan skrip.

$bashbaca_file.sh

Contoh-6: Tukar peluasan fail dari txt ke docx

Nama fail tanpa peluasan perlu menukar fail dari satu pelanjutan ke pelanjutan yang lain. Contoh ini menunjukkan bahawa bagaimana anda dapat mengubah peluasan semua fail teks (.txt) menjadi fail kata (.docx) dengan menggunakan perintah `basename` dalam skrip bash. Buat fail bernama, tukar_file.sh dengan kod berikut. Di sini, gelung masuk digunakan untuk membaca semua fail teks dengan .txt sambungan dari direktori semasa. Nama fail tanpa pelanjutan dibaca oleh perintah `basename` dan dinamakan semula dengan menambahkan pelanjutan .docx dalam setiap lelaran gelung.

tukar_file.sh

#! / bin / bash
# gelung akan membaca setiap fail teks dari direktori semasa
untuknama faildalam 'ls *.txt'
buat
# Cetak nama fail teks sebelum penukaran
membuang 'Nama fail sebelum penukaran:$ nama fail'
# Ubah sambungan fail txt ke docx
mv - '$ nama fail' '$ (nama asas - '$ nama fail' .txt).docx '
selesai

Jalankan skrip.

$bashtukar_file.sh

Periksa fail teks ditukar atau tidak dengan menggunakan perintah `ls`.

$ls

Contoh-7: Baca nama fail tanpa peluasan menggunakan pengembangan parameter Shell

Pengembangan parameter shell adalah cara lain untuk membaca nama fail tanpa perluasan dalam bash. Contoh ini menunjukkan penggunaan pengembangan parameter shell. Perintah berikut akan menyimpan nama laluan fail dalam pemboleh ubah, $ nama fail .

$nama fail='/var/usr/temp/myfile.tar.gz'

Perintah berikut akan membuang semua jenis peluasan dari jalan dan menyimpan jalur fail tanpa perluasan dalam pemboleh ubah, $ fail1 .

$fail1='$ {nama fail %%. *}'

Perintah berikut akan mencetak nama fail hanya dari jalan. Di sini, output akan ‘ myfile '.

$membuang '$ {fail1 ## * /}'

Sekiranya nama fail mengandungi dua peluasan dengan dua titik (.) Dan anda ingin membaca nama fail dengan membuang pelanjutan terakhir fail maka anda harus menggunakan perintah berikut. Jalankan arahan berikut yang menyimpan jalan fail ke dalam pemboleh ubah, $ fail2 dengan membuang pelanjutan terakhir fail.

$fail2='$ {nama fail%. *}'

Sekarang, jalankan arahan berikut untuk mencetak nama fail dengan sambungan satu titik (.). Di sini, output akan menjadi myfile.tar.

$membuang '$ {fail2 ## * /}'

Kesimpulannya

Nama fail tanpa peluasan diperlukan untuk pelbagai tujuan. Beberapa penggunaan nama fail tanpa pelanjutan dijelaskan dalam tutorial ini dengan menggunakan beberapa contoh seperti penukaran fail. Tutorial ini akan membantu pengguna yang berminat untuk mempelajari cara-cara untuk memisahkan nama dan peluasan fail dari jalan fail. Dua cara dijelaskan di sini. Pengguna boleh mengikuti salah satu cara ini untuk mengekstrak nama fail hanya dari laluan fail.