GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengganti nama banyak file dalam satu perintah atau skrip di Unix?

Kebanyakan shell standar menyediakan cara untuk melakukan substitusi teks sederhana di dalam variabel shell. http://tldp.org/LDP/abs/html/parameter-substitution.html menjelaskan sebagai berikut:

${var/Pattern/Replacement}

First match of Pattern, within var replaced with Replacement.

Jadi gunakan skrip ini untuk mengulang semua file yang sesuai dan ganti nama masing-masing:

for file in aro_tty-mIF-*_opt
do
    mv -i "${file}" "${file/-mIF-/-mImpFRA-}"
done

Saya telah menambahkan opsi -i sehingga Anda memiliki kesempatan untuk mengonfirmasi setiap operasi penggantian nama. Seperti biasa, Anda harus membuat cadangan semua file Anda sebelum melakukan penggantian nama atau penghapusan dalam jumlah besar.


Jika Anda tidak memiliki rename Perl :

perl -e '
FILE:for $file (@ARGV){
        ($new_name = $file) =~ s/-mIF-/-mImpFRA-/
        next FILE if -e $new_name;
        rename $file => $new_name
}' *_opt

Jika Anda lakukan memiliki rename Perl :

rename 's/-mIF-/-mImpFRA-/' *_opt

Sebelum mencoba perintah rumit seperti berikut, cadangkan file Anda . Anda tidak pernah tahu apa yang bisa disebabkan oleh kesalahan ketik (milik saya atau milik Anda).

Dengan mv (seperti yang Anda tanyakan di komentar --- rename seperti yang disarankan dalam jawaban lain mungkin lebih aman, terutama jika Anda dapat memiliki spasi atau karakter aneh di nama file Anda) sesuatu yang bergaya

for f in *_opt; do
    a="$(echo $f | sed s/-mIF-/-mImpFRA-/)"
    mv "$f" "$a"
done

Linux
  1. Bagaimana Cara Mengganti Nama Banyak File Menggunakan Find?

  2. Cara Mengganti Nama Banyak File Sekaligus di Linux

  3. Cara Mengganti Nama Banyak File Bersama di Linux Menggunakan 3 Metode

  1. Bagaimana cara ftp dan Mengunduh file dari Skrip Shell UNIX?

  2. Bagaimana Cara Menyalin File di Linux dan Unix? Contoh Perintah 10 cp

  3. Cara mengganti string dalam banyak file di baris perintah linux

  1. Cara Mengganti Nama File di Linux

  2. Bagaimana cara mengganti nama banyak file dari satu ekstensi ke ekstensi lainnya di Linux / Unix?

  3. Linux Bash Script, Perintah Tunggal Tapi Banyak Baris?