2
หลีกเลี่ยงการแทนที่ช่องว่างเมื่อเปลี่ยนชื่อไฟล์
ฉันพยายามเปลี่ยนชื่อไฟล์เช่นนี้: for file in *; do mv -i "$file" "$(echo "$file" | sed -e 's/[^A-Za-z0-9._-]/_/g')"; done แต่คำสั่งแทนที่ช่องว่างทั้งหมดที่มีsed_ ฉันจะแก้ไขsedคำสั่งเพื่อทำให้เป็นช่องว่างพร้อมกับอักขระที่ระบุได้อย่างไร ฉันลองใช้\sแล้วแต่ไม่ได้ผล ... แก้ไข: ตัวอย่างเช่นไฟล์trip: hill, ควรจะเปลี่ยนชื่อ: แต่คำสั่งดังกล่าวทำให้มันtrip_ hilltrip__hill