Cara mengekstrak nama file & ekstensi dalam skrip shell

Cara mengekstrak nama file & ekstensi dalam skrip shell

Untuk mengekstrak nama file dan ekstensi dari jalur file dalam skrip shell, Anda dapat menggunakan 'Basename' memerintah.

Berikut adalah contoh bagaimana Anda bisa menggunakan nama dasar untuk mengekstrak nama file Dan perpanjangan Dari jalur file yang diberikan:

#!/usr/bin/env bash # Tentukan file path filePath = "/var/log/mail.Log " # Ekstrak nama file dan ekstensi dari file path file = $ (Basename" $ ​​filepath ") # Ekstrak ekstensi dari ekstensi path file =" $ fileName ##*. " # Ekstrak nama file tanpa file ekstensi =" $ fileName%.* "
12345678910111213#!/usr/bin/env bash # tentukan file pathfilePath = "/var/log/mail.Log " # Ekstrak nama file dan ekstensi dari file pathfileName = $ (Basename" $ ​​filepath ") # Ekstrak ekstensi dari file pathextension =" $ fileName ##*. " # Ekstrak nama file tanpa extensionFileName =" $ fileName%.* "

Dalam contoh ini, '$ filepath'adalah jalur file yang ingin Anda ekstrak dari nama file dan ekstensi. Itu nama dasar Perintah mengekstrak nama file Dan perpanjangan dari jalur file dan menyimpannya di nama file variabel.

Itu perpanjangan Variabel kemudian diatur ke string setelah yang terakhir . karakter dalam variabel nama file, menggunakan ## Operator Ekspansi Parameter.

Itu nama file Variabel kemudian diatur ke string sebelum yang terakhir . karakter di nama file variabel, menggunakan % Operator Ekspansi Parameter.

Ini akan mengekstraksi nama file Dan perpanjangan dari jalur file dan menyimpannya di nama file dan ekstensi, masing -masing.

Anda kemudian dapat menggunakan variabel -variabel ini dalam skrip Anda sesuai kebutuhan. Misalnya, Anda dapat menggunakan nama file Dan perpanjangan Variabel untuk memeriksa jenis file atau untuk mengganti nama.

1. Dapatkan nama file tanpa jalan

Pertama, hapus jalur file lengkap dari nama file input. Misalnya, jika input nama file adalah sebagai “/Var/log/mail.catatan" Kemudian ekstrak nama file lengkapnya surat.catatan hanya.

#!/usr/bin/env bash filepath = "/var/log/mail.log "fileName = $ (Basename" $ ​​filepath ") echo" nama file lengkap: $ fileName "
123456#!/usr/bin/env bash filepath = "/var/log/mail.log "fileName = $ (Basename" $ ​​filepath ") echo" nama file lengkap: $ fileName "

Outputnya akan:

Nama file lengkap: surat.catatan 

2. Nama file tanpa ekstensi

Sekarang ekstrak nama file tanpa ekstensi dari nama file lengkap yang diekstraksi tanpa jalur seperti di atas.

#!/usr/bin/env bash filepath = "/var/log/mail.Log "fileName = $ (Basename" $ ​​filepath ") FileName =" $ fileName%.* nama file "echo" adalah: $ filename "
123456#!/usr/bin/env bash filepath = "/var/log/mail.Log "fileName = $ (Basename" $ ​​filepath ") FileName =" $ fileName%.* nama file "echo" adalah: $ filename "

Outputnya akan:

Nama file adalah: surat 

3. Dapatkan ekstensi saja

Sekarang ekstrak ekstensi file tanpa nama dari nama file lengkap yang diekstraksi tanpa jalur.

#!/usr/bin/env bash filepath = "/var/log/mail.Log "FileName = $ (Basename" $ ​​FilePath ") Extension =" $ FileName ##*. Ekstensi "Echo": $ ekstensi "
1234567#!/usr/bin/env bash filepath = "/var/log/mail.Log "FileName = $ (Basename" $ ​​FilePath ") Extension =" $ FileName ##*. Ekstensi "Echo": $ ekstensi "

Outputnya akan:

Ekstensi: Log 

4. Ekstrak jalur direktori

Anda juga dapat menggunakan 'Dirname' Perintah untuk mengekstrak jalur direktori dari jalur file lengkap. Misalnya:

#!/usr/bin/env bash filepath = "/var/log/mail.log "dir = $ (dirname" $ ​​filepath ") echo" direktori: $ dir "
123456#!/usr/bin/env bash filepath = "/var/log/mail.log "dir = $ (dirname" $ ​​filepath ") echo" direktori: $ dir "

Outputnya akan:

Direktori:/var/log/ 

Kesimpulan

Panduan How-To Cepat ini membantu Anda memahami cara mengekstrak nama file dan ekstensi dari jalur file. Perlu diingat bahwa perintah -perintah ini hanya bekerja dengan shell bash. Jika Anda menggunakan shell yang berbeda, Anda mungkin perlu menggunakan sintaks yang berbeda.