GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Membersihkan Ekstensi File?

Saya memiliki direktori dengan file .MP3 yang ingin saya ubah ekstensinya menjadi .mp3. Apa cara termudah untuk melakukan ini? Saya memikirkan sesuatu seperti:

find /RootPath -type f -iname "*.mp3" -exec mv {} sed s/.*MP3/1.mp3/ ; 

…meskipun aku tahu itu tidak sepenuhnya benar. Penggantinya salah dan saya tidak yakin bagaimana menggunakan keduanya mv dan sed perintah dengan -exec di find .

Apakah saya memerlukan skrip bash untuk ini?

Jawaban yang Diterima:

Berikut ini salah satu cara untuk melakukannya di Bash:

for i in *; do [ "${i/%MP3/mp3}" != "$i" ] && echo "$i" "${i/%MP3/mp3}"; done

Saya telah menggunakan echo di sini jadi perintah itu sendiri tidak melakukan apa pun selain mencetak pasangan nama file. Jika daftar tersebut mewakili perubahan yang ingin Anda buat, maka Anda dapat mengubah echo untuk sesuatu seperti mv -i -- yang kemudian akan memindahkan file Anda (dan meminta Anda sebelum menimpa).

Penjelasan Singkat:

for iterasi melalui setiap file yang cocok dengan * . Kemudian, kami menentukan apakah ekstensi sudah menjadi huruf kecil, jika itu kami lanjutkan, jika tidak, kami melanjutkan untuk memindahkannya (atau menggemakannya, tergantung kasusnya). Ini menggunakan operasi string bawaan Bash yang dapat Anda baca di sini:http://tldp.org/LDP/abs/html/string-manipulation.html


Linux
  1. Bagaimana Mengganti Nama File di Linux?

  2. Bagaimana cara membuat file jarang?

  3. Cara grep \n dalam file

  1. Bagaimana cara menambahkan teks ke file?

  2. Cara mengurutkan file di tempat

  3. Bagaimana cara menampilkan isi file secara rekursif?

  1. Cara memindahkan file di Linux

  2. Cara Mengekstrak (Unzip) File Tar Gz

  3. Bagaimana cara menyalin file secara transaksional?