Ekstrak Nama File dan Ekstensi di Bash

Pengantar

Ada banyak alasan mengapa Anda ingin mengekstrak nama file dan ekstensi file di Bash:

  • Untuk memanipulasi nama file atau ekstensi โ€“ Anda mungkin ingin mengekstrak nama file atau ekstensi untuk memodifikasinya, seperti menambahkan awalan atau akhiran ke nama file, atau mengubah ekstensi file.

  • Untuk membuat file dengan nama yang unik โ€“ Anda mungkin ingin mengekstrak nama file dan ekstensi untuk membuat file baru dengan nama unik, seperti menambahkan stempel waktu atau nomor acak ke nama file.

  • Untuk menggunakan nama file atau ekstensi dalam skrip atau perintah โ€“ Anda mungkin ingin mengekstrak nama file atau ekstensi untuk menggunakannya sebagai argumen atau input untuk skrip atau perintah, seperti meneruskannya ke program atau membuat file dengan nama yang sama dengan direktori.

  • Untuk mengekstrak informasi dari nama file atau ekstensi โ€“ Anda mungkin ingin mengekstrak nama file atau ekstensi untuk mengekstrak informasi darinya, seperti tanggal atau jenis file.

Pada artikel ini, kita akan melihat tiga cara paling umum untuk mengekstrak nama file dan ekstensi file di Bash. Kami akan melihat masing-masing dari mereka dan memberi Anda pro dan kontra, sehingga Anda dapat membuat keputusan yang cerdas tentang pendekatan apa yang paling cocok untuk Anda.

Metode 1: Menggunakan nama dasar perintah

Grafik basename perintah dapat digunakan untuk mengekstrak nama file dan ekstensi dari jalur file:

filename=$(basename /path/to/file.txt)
echo $filename

Meskipun metode ini cukup sederhana dan mudah digunakan, sayangnya, tidak mungkin kita hanya dapat mengekstrak nama file (tanpa ekstensi) tanpa proses pasca apa pun.

Anda juga dapat menggunakan dirname perintah untuk mengekstrak jalur direktori secara terpisah:

directory=$(dirname /path/to/file.txt)
echo $directory

Pro:
  • Mudah digunakan
  • Menangani nama file dengan spasi dengan benar
Cons:
  • Hanya mengekstrak nama file dan tidak dapat mengekstrak ekstensi secara terpisah tanpa pemrosesan tambahan

Metode 2: Menggunakan Ekspansi Parameter

Bash menyediakan fitur yang disebut ekspansi parameter, yang memungkinkan Anda untuk mengekstrak bagian dari variabel menggunakan sintaks khusus. Misalnya, Anda dapat menggunakan sintaks berikut untuk mengekstrak nama file dan ekstensi dari jalur file yang disimpan dalam variabel:

filepath="/path/to/file.txt"
filename=${filepath##*/}
echo $filename

Anda juga dapat menggunakan ekspansi parameter untuk mengekstrak ekstensi secara terpisah:

extension=${filename##*.}
echo $extension

Pro:
  • Fleksibel
  • Dapat mengekstrak nama file dan ekstensi secara terpisah,
  • Menangani nama file dengan spasi dengan benar
Cons:
  • Membutuhkan variabel untuk menyimpan jalur file

Metode 3: Menggunakan Wow Command

Grafik awk perintah adalah alat pengolah teks yang kuat yang dapat digunakan untuk mengekstrak bagian dari string. Misalnya, Anda dapat menggunakan sintaks berikut untuk mengekstrak nama file dan ekstensi dari jalur file:

filepath="/path/to/file.txt"
filename=$(echo $filepath | awk -F/ '{print $NF}')
echo $filename

Lihat panduan praktis dan praktis kami untuk mempelajari Git, dengan praktik terbaik, standar yang diterima industri, dan termasuk lembar contekan. Hentikan perintah Googling Git dan sebenarnya belajar itu!

Anda juga dapat menggunakan awk untuk mengekstrak ekstensi secara terpisah:

extension=$(echo $filename | awk -F. '{print $NF}')
echo $extension

Pro:
  • kuasa
  • Dapat mengekstrak nama file dan ekstensi secara terpisah
  • Menangani nama file dengan spasi dengan benar
Cons:
  • Sintaks mungkin asing bagi sebagian pengguna
  • Membutuhkan pemipaan jalur file awk

Kesimpulan

Secara keseluruhan, mengekstrak nama file dan ekstensi file di Bash dapat menjadi teknik yang berguna untuk bekerja dengan file dan melakukan berbagai tugas di Bash shell.

Setiap metode yang disebutkan memiliki kelebihan dan kekurangannya sendiri, dan pilihan terbaik akan bergantung pada kebutuhan dan preferensi spesifik Anda. Sering kali bermanfaat untuk mengenal beberapa pendekatan sehingga Anda dapat memilih salah satu yang paling cocok untuk situasi Anda.

Stempel Waktu:

Lebih dari penyalahgunaan