Saya memiliki sejumlah file dalam sebuah folder, dan saya ingin mengganti setiap karakter spasi di semua nama file dengan garis bawah. Bagaimana saya bisa mencapai ini?
96
Ini harus melakukannya:
for file in *; do mv "$file" `echo $file | tr ' ' '_'` ; done
1 - foo.jpg
dan folder saya sudah ada1.jpg
di dalamnya.for file in *; do mv "$file" $(echo $file | tr ' ' '_') ; done
*
kePATH_TO_YOUR_DIRECTORY
.Saya lebih suka menggunakan perintah 'rename', yang menggunakan regexes gaya Perl:
Anda dapat melakukan uji coba dengan bendera -n:
sumber
rename " " "_" *
rename
tidak tersedia di OSX itu muncul.rename
tersedia.Gunakan sh ...
Jika Anda ingin mencobanya sebelum menarik pelatuk, ganti saja
mv
keecho mv
.sumber
Jika Anda menggunakan bash:
sumber
mv --help' for more information. mv: when moving multiple files, last argument must be a directory Try
mv - help 'untuk informasi lebih lanjut.mv --help' for more information. mv: missing file argument Try
mv --help 'untuk informasi lebih lanjut. mv: argumen file hilang Cobamv --help' for more information. mv: missing file argument Try
mv --help 'untuk informasi lebih lanjut.Bagaimana jika Anda ingin menerapkan tugas ganti secara rekursif ? Bagaimana Anda melakukannya?
Nah, saya sendiri baru menemukan jawabannya. Bukan solusi paling elegan, (juga mencoba mengganti nama file yang tidak sesuai dengan kondisi) tapi berhasil. (BTW, dalam kasus saya, saya perlu mengganti nama file dengan '% 20', bukan dengan garis bawah)
sumber
Coba sesuatu seperti ini, dengan asumsi semua file Anda adalah .txt:
sumber
tr --help' for more information. mv: missing file argument Try
mv --help 'untuk informasi lebih lanjut.Ini solusi lainnya:
sumber
Kutip variabel Anda:
Hapus "echo" untuk melakukan rename yang sebenarnya.
sumber
\'1130 lake micigan view.jpg\'': No such file or directory mv: cannot stat
\ '1130_1_bedroom_floor_plan.jpg \' ': Tidak ada file atau direktori mv: tidak bisa stat\'1130_BedPicture_8.jpg\'': No such file or directory mv: cannot stat
\' 1130_diningroom_table.jpg \ '': Tidak ada file atau direktori seperti ituCara termudah untuk mengganti string (karakter spasi dalam kasus Anda) dengan string lain dalam
Linux
menggunakansed
. Anda bisa melakukannya sebagai berikutSemoga ini membantu.
sumber
Saya yakin jawaban Anda ada di Ganti spasi di nama file dengan garis bawah .
sumber
Untuk mengganti nama semua file dengan
.py
penggunaan ekstensi,find . -iname "*.py" -type f | xargs -I% rename "s/ /_/g" "%"
Output sampel,
sumber