Sangat sederhana.
Bagaimana cara saya mengganti nama
05_h.png
06_h.png
untuk
05_half.png
06_half.png
Setidaknya, saya pikir itu sederhana, tetapi sulit bagi Google untuk hal semacam ini kecuali Anda sudah tahu.
Terima kasih....
Cukup gunakan bash, tidak perlu memanggil perintah eksternal.
for file in *_h.png
do
mv "$file" "${file/_h.png/_half.png}"
done
Jangan tambahkan #!/bin/sh
Bagi yang membutuhkan one-liner:
for file in *.png; do mv "$file" "${file/_h.png/_half.png}"; done
Do not add #!/bin/sh
? Saya mencoba keduanya bekerja dengan / tanpa pernyataan ini.#!/bin/bash
. Ini mengatakan, bash biasanya adalah shell default di banyak komputer sehingga Anda tidak akan menemukan banyak perbedaan: D Anda dapat menemukan informasi lebih lanjut di siniCoba
rename
perintah:Memperbarui:
contoh penggunaan:
buat beberapa konten
solusi uji:
sumber
ls
? apa yangrename ...
kamu cobarename
bukan alat Unix standar.brew install rename
's//'
sedangkan bagi saya rename tidak bekerja - saya mereferensikan laki-laki dan ada sinopsis sederhanarename [options] expression replacement file...
rename from util-linux 2.23.2
.
cocok dengan karakter APA SAJA, bukan hanya titik - untuk titik literal, gunakan\.
sebagai gantinyasumber
mv $f $fnew
denganecho $fnew
sebagai baris kedua untuk memastikan output terlihat waras.Apakah Anda mencari solusi bash murni? Ada banyak pendekatan, tetapi ini satu.
Ini menganggap bahwa satu-satunya file di direktori saat ini yang berakhiran
_h.png
adalah yang ingin Anda ganti namanya.Jauh lebih spesifik
Anggap kedua contoh itu adalah satu-satunya milik Anda. file.
Untuk kasus umum, berkas mengubah nama di telah telah tertutup sebelum .
sumber
Gunakan
rename
utilitas yang ditulis dalam perl. Mungkin saja itu tidak tersedia secara default ...sumber
sumber
Saya punya pertanyaan serupa: Di manual, ini menggambarkan rename as
jadi kamu bisa menggunakannya dengan cara ini
Dalam kode: '_h' adalah ekspresi yang Anda cari. '_half' adalah pola yang ingin Anda ganti. '* .png' adalah rentang file yang Anda cari untuk file target yang mungkin.
Semoga ini bisa membantu c:
sumber
Pendekatan lain dapat secara manual menggunakan opsi mengubah nama batch
Klik kanan pada file -> Perintah Kustom File -> Ganti Nama Batch dan Anda dapat mengganti h. dengan setengah.
Ini akan berfungsi untuk gui berbasis linux menggunakan WinSCP dll
sumber
Gunakan
rename
utilitas:sumber
Satu liner:
for file in *.php ; do mv "$file" "_$file" ; done
sumber
Meskipun set jawaban sudah lengkap, saya perlu menambahkan satu lagi yang hilang.
sumber