Cara Mengekstrak File Basename Tanpa Path dan Ekstensi di Bash

Cara Mengekstrak File Basename Tanpa Path Dan Ekstensi Di Bash



Perintah basename biasanya digunakan di Bash untuk mengambil nama dasar file atau direktori dari jalur yang diberikan dengan menghapus komponen direktori terkemuka. Artikel ini akan membahas cara mengekstrak nama dasar file tanpa jalur dan ekstensinya menggunakan bash.

Ekstrak File Basename Tanpa Path dan Ekstensi di Bash

Untuk mengekstrak nama dasar file tanpa jalur dan ekstensinya, kita dapat menggunakan perintah nama dasar bersamaan dengan fitur substitusi parameter bash. Perintah basename mengembalikan komponen terakhir dari pathname, yang dalam kasus kita adalah nama file dengan ekstensinya. Namun, dengan menentukan opsi akhiran, kami dapat menghapus ekstensi dari nama file, berikut adalah contoh kode bash:

#!bin/bash
jalur file = / rumah / aaliyan / bash3.sh
S =$ ( nama dasar $filepath )
gema ' ${s%.*} '

Skrip bash di atas mendefinisikan variabel yang disebut ' jalur file ” dan memberinya jalur file “ /home/aaliyan/bash3.sh “. Skrip kemudian menggunakan perintah nama dasar untuk mengekstrak nama dasar file dari jalur file dan menetapkan hasilnya ke variabel yang disebut 's'.







Ekspansi parameter kedua menghapus ekstensi dari nama file dengan menghapus kecocokan sesingkat mungkin dari sejumlah karakter diikuti dengan titik menggunakan “%.*”. String yang dihasilkan, 'bash3', kemudian dicetak ke konsol menggunakan perintah echo:





Cara lain untuk mengekstrak nama basis file tanpa jalur dan ekstensi file adalah dengan menggunakan ekspansi parameter tanpa menggunakan perintah nama dasar, di bawah ini adalah contoh kode bash yang menggunakan metode ekspansi parameter untuk mendapatkan nama dasar file tanpa file jalur dan ekstensi file:





#!bin/bash
jalur file = / rumah / aaliyan / bash3.sh
S = ${filepath##*/}
gema ' ${s%.*} '

Ini adalah skrip bash yang mendefinisikan variabel yang disebut 'filepath' dan memberinya nilai ' /home/aaliyan/bash3.sh “. Skrip kemudian menggunakan fitur ekspansi parameter bash dua kali untuk mengekstrak nama dasar file tanpa jalur dan ekstensinya. Secara khusus, perluasan parameter pertama menghapus jalur dari nama file dengan menghapus kecocokan terlama dari sejumlah karakter diikuti dengan garis miring menggunakan '##/'.

Untaian yang dihasilkan, “ bash3.sh ” kemudian ditugaskan ke variabel yang disebut 's'. Ekspansi parameter kedua menghapus ekstensi dari nama file dengan menghapus kecocokan sesingkat mungkin dari sejumlah karakter diikuti dengan titik menggunakan '%.'. String yang dihasilkan, 'bash3', kemudian dicetak ke konsol menggunakan perintah echo:



Kesimpulan

Mengekstrak nama dasar file tanpa jalur dan ekstensinya adalah tugas umum dalam pembuatan skrip bash. Dengan menggunakan perintah basename yang dikombinasikan dengan fitur substitusi parameter dan ekspansi parameter bash, kita dapat dengan mudah mencapai tugas ini. Ini berguna saat bekerja dengan nama file dalam skrip, misalnya saat mengganti nama file atau melakukan operasi pada file dengan nama yang mirip.