Cara Mengekstrak Nama Fail & Extension dalam Skrip Shell

Cara Mengekstrak Nama Fail & Extension dalam Skrip Shell

Untuk mengekstrak nama fail dan lanjutan dari laluan fail dalam skrip shell, anda boleh menggunakan 'Nama Base' perintah.

Berikut adalah contoh cara anda boleh menggunakan Nama bas Untuk mengekstrak nama fail dan sambungan dari laluan fail yang diberikan:

#!/usr/bin/env bash # tentukan jalur fail filePath = "/var/log/mel.log " # Ekstrak nama fail dan lanjutan dari fail fail fail filename = $ (baseName" $ ​​filePath ") # Ekstrak lanjutan dari lanjutan laluan fail =" $ filename ##*. " # Ekstrak nama fail tanpa filename lanjutan =" $ filename%.* "
12345678910111213#!/usr/bin/env bash # tentukan fail pathfilePath = "/var/log/mel.log " # Ekstrak nama fail dan lanjutan dari fail pathfileName = $ (baseName" $ ​​filePath ") # Ekstrak lanjutan dari fail pathexTension =" $ filename ##*. " # Ekstrak nama fail tanpa lanjutanFileName =" $ FileName%.* "

Dalam contoh ini, '$ filePath'adalah laluan fail yang anda ingin mengeluarkan nama fail dan lanjutan dari. The Nama bas Perintah mengekstrak nama fail dan sambungan dari laluan fail dan menyimpannya di nama fail pembolehubah.

The sambungan Pembolehubah kemudian ditetapkan ke rentetan selepas yang terakhir . watak dalam pembolehubah nama fail, menggunakan ## Pengendali pengembangan parameter.

The nama fail Pemboleh ubah kemudian ditetapkan ke rentetan sebelum yang terakhir . watak dalam nama fail pemboleh ubah, menggunakan % Pengendali pengembangan parameter.

Ini akan mengeluarkan nama fail dan sambungan dari laluan fail dan simpannya dalam nama fail dan pembolehubah lanjutan.

Anda kemudian boleh menggunakan pembolehubah ini dalam skrip anda seperti yang diperlukan. Contohnya, anda mungkin menggunakan nama fail dan sambungan pembolehubah untuk memeriksa jenis fail atau untuk menamakannya.

1. Dapatkan nama fail tanpa jalan

Pertama, keluarkan laluan fail penuh dari nama fail input. Contohnya, jika input nama fail adalah seperti "/Var/log/mel.log kemudian ekstrak nama fail penuh mel.log hanya.

#!/usr/bin/env bash filePath = "/var/log/mel.log "filename = $ (baseName" $ ​​filePath ") echo" Filename Full: $ FileName "
123456#!/usr/bin/env bash filePath = "/var/log/mel.log "filename = $ (baseName" $ ​​filePath ") echo" Filename Full: $ FileName "

Output akan:

Nama fail penuh: mel.log 

2. Nama fail tanpa lanjutan

Sekarang ekstrak nama fail tanpa lanjutan dari nama fail penuh yang diekstrak tanpa jalan seperti di atas.

#!/usr/bin/env bash filePath = "/var/log/mel.log "filename = $ (baseName" $ ​​filePath ") fileName =" $ FileName%.* "echo" nama fail adalah: $ fail nama "
123456#!/usr/bin/env bash filePath = "/var/log/mel.log "filename = $ (baseName" $ ​​filePath ") fileName =" $ FileName%.* "echo" nama fail adalah: $ fail nama "

Output akan:

Nama fail adalah: mel 

3. Dapatkan sambungan sahaja

Sekarang ekstrak lanjutan fail tanpa nama dari nama fail penuh yang diekstrak tanpa jalan.

#!/usr/bin/env bash filePath = "/var/log/mel.log "filename = $ (baseName" $ ​​filePath ") extension =" $ filename ##*. "Echo" Extension: $ Extension "
1234567#!/usr/bin/env bash filePath = "/var/log/mel.log "filename = $ (baseName" $ ​​filePath ") extension =" $ filename ##*. "Echo" Extension: $ Extension "

Output akan:

Sambungan: log 

4. Ekstrak Laluan Direktori

Anda juga boleh menggunakan 'Dirname' perintah untuk mengekstrak laluan direktori dari laluan fail penuh. Sebagai contoh:

#!/usr/bin/env bash filePath = "/var/log/mel.log "dir = $ (dirname" $ ​​filePath ") echo" Direktori: $ dir "
123456#!/usr/bin/env bash filePath = "/var/log/mel.log "dir = $ (dirname" $ ​​filePath ") echo" Direktori: $ dir "

Output akan:

Direktori:/var/log/ 

Kesimpulan

Panduan cara cepat ini membantu anda memahami cara mengekstrak nama fail dan lanjutan dari laluan fail. Perlu diingat bahawa perintah ini hanya berfungsi dengan shell bash. Sekiranya anda menggunakan shell yang berbeza, anda mungkin perlu menggunakan sintaks yang berbeza.