Diberikan file-file berikut:
english_api
english_overview
style.css
Saya ingin mendapatkan:
english_api.html
english_overview.html
style.css
Dengan kata lain cara menambahkan teks ke semua file yang Tidak Mengandung titik ( .
) dalam direktori menggunakan terminal.
Jelas ada banyak file di folder itu; Saya hanya menulis 3 sebagai contoh.
Jika saya, katakanlah, ganti .css
dengan .html
di folder itu, saya akan menggunakan:
rename .css .html *.css
Tapi saya tidak bisa memikirkan cara untuk mencocokkan file yang tidak mengandung sesuatu. Juga bagaimana menambahkan (vs mengganti) menggunakan rename
perintah?
sumber
for file in path/to/files/!(*.*); do echo mv "$file" "$file.html"; done
perintah mengubah nama direktori juga.Saya lebih suka dalam kasus seperti ini
mmv
. Ini tidak diinstal secara default di Ubuntu, tetapi Anda dapat menginstal menggunakansudo apt-get install mmv
perintah.Dalam kasus Anda, Anda perlu menggunakannya dua kali:
Ganti nama semua file dari direktori saat ini dengan menambahkan
.html
di akhir setiap nama file:Ganti nama lagi (kembali) semua file yang sebelumnya atas namanya satu atau lebih
.
(titik):Atau, dalam satu baris:
-v
Opsi tidak wajib. Saya menggunakannya hanya untuk keluaran verbose karena tanpa itummv
melakukan tindakan diam-diam.Lihat
man mmv
untuk info lebih lanjut.sumber
Dengan perintah Perl rename (
prename
), Anda dapat menambahkan kondisi bahwa nama file harus mengandung titik. Jika cuplikan Perl tidak mengubah nama file, file itu tidak tersentuh. Berikut adalah beberapa cara untuk menulis ini:sumber
Jawabannya sempurna, saya juga memberi Anda perintah lain yang melakukan pekerjaan ini:
Beberapa penjelasan:
CATATAN :
Saya mencoba skenario Anda dan perintah membuat pekerjaan.
sumber
ls
.awk
dansh
, coba sesuatu sepertiprintf "'%s'\n" -- !(*.*) | awk '{print "mv -- "$0" "$0".html"}' | sh
. Itu masih akan terputus pada nama file dengan baris baru tapi setidaknya itu bisa berurusan dengan spasi. The--
diperlukan untuk kasus-kasus di mana Anda memiliki nama file yang dimulai dengan-
.