Baca nama file tanpa ekstensi di Bash

Read Filename Without Extension Bash

Pengguna Linux perlu bekerja dengan file secara teratur untuk berbagai tujuan. Terkadang pengguna perlu membaca nama dasar file hanya dengan menghapus ekstensi file. Nama file dan ekstensi dapat dipisahkan dan disimpan pada variabel yang berbeda di Linux dengan berbagai cara. Perintah bawaan Bash dan perluasan parameter shell dapat digunakan untuk menghapus ekstensi file. Bagaimana nama file tanpa ekstensi dapat dibaca dengan menggunakan cara-cara yang disebutkan di atas dijelaskan dalam tutorial ini.

Menggunakan perintah `basename` untuk membaca nama file

Perintah `basename` digunakan untuk membaca nama file tanpa ekstensi dari direktori atau jalur file.



Sintaksis:



nama dasarNAMA[AKHIRAN]

atau



nama dasarOPSI... NAMA...

Di sini, NAME dapat berisi nama file atau nama file dengan path lengkap. SUFFIX adalah opsional dan berisi bagian ekstensi file yang ingin dihapus pengguna. Perintah `basename` memiliki beberapa opsi yang dijelaskan di bawah ini.

Pilihan

Nama Keterangan
-ke Ini digunakan untuk melewatkan beberapa nama file dengan jalur atau tanpa jalur sebagai argumen perintah.
-S Ini digunakan untuk meneruskan ekstensi sebagai sufiks yang perlu dihapus.
-Dengan Ini digunakan untuk menampilkan beberapa nama file dengan memisahkan setiap file dengan null.
-Tolong Digunakan untuk menampilkan informasi penggunaan perintah `basename`.
-Versi: kapan Digunakan untuk menampilkan informasi versi.

Contoh-1: Menggunakan NAMA dan SUFFIX

Perintah `basename` berikut akan mengambil nama file dengan ekstensi. SUFFIX dihilangkan dari perintah ini. Di sini, outputnya adalah 'produk.txt' .



$nama dasar /rumah/fahmida/kode/produk.txt

Jika Anda ingin mengambil nama file tanpa ekstensi, maka Anda harus memberikan ekstensi file sebagai SUFFIX dengan perintah `basename`. Di sini, ekstensinya adalah .txt. Jalankan perintah berikut untuk menghapus ekstensi dari file.

$nama dasar /rumah/fahmida/kode/produk.txt .txt

Contoh-2: Menggunakan opsi ‘-a’ dan NAMA

Penggunaan opsi '-a' dari perintah `basename` ditunjukkan dalam contoh ini. Di sini, dua jalur file dilewatkan sebagai argumen dengan perintah `basename`. Setiap nama file dengan ekstensi akan diambil dari jalur dan dicetak dengan baris baru.

$nama dasar -ke /rumah/fahmida/index.html/rumah/fahmida/kode/emp.txt

Contoh-3: Menggunakan opsi ‘-z’ dan NAMA

Opsi '-z' digunakan dengan perintah `basename` untuk mencetak beberapa nama file dengan nilai null alih-alih baris baru. Perintah berikut menggunakan dua opsi secara bersamaan, '-a' dan '-z'. Di sini, dua nama file, index.html dan emp.txt akan mencetak tanpa spasi atau baris baru.

$nama dasar -NS /rumah/fahmida/index.html/rumah/fahmida/kode/emp.txt

Contoh-4: Menggunakan opsi ‘-s’ dan NAMA

Perintah berikut dapat digunakan sebagai alternatif SUFFIX dengan `basename`. Ekstensi file harus lulus dengan opsi '-sh' untuk menghapus ekstensi file dari file. Contoh berikut akan menghapus ekstensi, '-sh' dari file, 'addition.sh'.

$nama dasar -S.sh tambahan.sh

Contoh-5: Hapus ekstensi file tanpa SUFFIX

Jika Anda tidak tahu ekstensi file yang ingin Anda hapus dari nama file, maka contoh ini akan membantu Anda memecahkan masalah. Buat file bernama read_file.sh dengan kode berikut untuk mengambil nama file dari ekstensi apa pun. Perintah `sed` digunakan dalam contoh ini untuk menghapus semua jenis ekstensi dari nama file. Jika Anda menjalankan skrip, hasilnya akan menjadi ' rata-rata ' setelah menghapus ekstensi ' py '.

read_file.sh

#!/bin/bash
# Atur nama file dengan path
nama file='/home/fahmida/code/average.py'
# Baca nama file tanpa ekstensi dengan menggunakan perintah 'basname' dan `sed`
dibuang '$(namadasar '$namafile' | sed 's/(.*)..*/1/')'

Jalankan skrip.

$pestaread_file.sh

Contoh-6: Konversi ekstensi file dari txt ke docx

Nama file tanpa ekstensi perlu mengonversi file dari satu ekstensi ke ekstensi lainnya. Contoh ini menunjukkan bagaimana Anda dapat mengubah ekstensi semua file teks (.txt) menjadi file kata (.docx) dengan menggunakan perintah `basename` di skrip bash. Buat file bernama, convert_file.sh dengan kode berikut. Di sini, for-in loop digunakan untuk membaca semua file teks dengan .txt ekstensi dari direktori saat ini. Nama file tanpa ekstensi dibaca dengan perintah `basename` dan diganti namanya dengan menambahkan ekstensi .docx di setiap iterasi loop.

convert_file.sh

#!/bin/bash
# loop akan membaca setiap file teks dari direktori saat ini
untuknama filedi dalam ``ls *.txt``
melakukan
# Cetak nama file teks sebelum konversi
dibuang 'Nama file sebelum konversi :$nama file'
# Ubah ekstensi file txt menjadi docx
mv - '$nama file' '$(namadasar -- '$namafile' .txt).docx '
selesai

Jalankan skrip.

$pestaconvert_file.sh

Periksa file teks yang dikonversi atau tidak dengan menggunakan perintah `ls`.

$ls

Contoh-7: Baca nama file tanpa ekstensi menggunakan ekspansi parameter Shell

Perluasan parameter Shell adalah cara lain untuk membaca nama file tanpa ekstensi di bash. Contoh ini menunjukkan penggunaan ekspansi parameter shell. Perintah berikut akan menyimpan nama path file dalam variabel, $ nama file .

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

Perintah berikut akan menghapus semua jenis ekstensi dari jalur dan menyimpan jalur file tanpa ekstensi dalam variabel, $file1 .

$file1='${namafile%%.*}'

Perintah berikut akan mencetak nama file hanya dari path. Di sini, output akan ' file saya '.

$dibuang '${file1##*/}'

Jika nama file berisi dua ekstensi dengan dua titik (.) dan Anda ingin membaca nama file dengan menghapus ekstensi terakhir dari file, maka Anda harus menggunakan perintah berikut. Jalankan perintah berikut yang menyimpan path file ke dalam variabel, $ file2 dengan menghapus ekstensi terakhir dari file.

$file2='${namafile%.*}'

Sekarang, jalankan perintah berikut untuk mencetak nama file dengan ekstensi satu titik (.). Di sini, outputnya adalah file saya.tar.

$dibuang '$ {file2 ## * /}'

Kesimpulan

Nama file tanpa ekstensi diperlukan untuk berbagai keperluan. Beberapa penggunaan nama file tanpa ekstensi dijelaskan dalam tutorial ini dengan menggunakan beberapa contoh seperti konversi file. Tutorial ini akan membantu para pengguna yang tertarik untuk mempelajari cara memisahkan nama file dan ekstensi dari jalur file. Dua cara dijelaskan di sini. Pengguna dapat mengikuti salah satu cara ini untuk mengekstrak nama file hanya dari jalur file.