รูปแบบจับคู่อักขระบางตัวหลังเครื่องหมายทับสุดท้าย


0

ฉันพยายามที่จะทำต่อไปนี้: -แฟ้มรายการหรือไดเรกทอรีที่มีตัวอักษรบางอย่างจากนั้นเฉือนที่ผ่านมาในการค้นหาเส้นทางสำหรับตัวละครโดยเฉพาะอย่างยิ่งและแทนที่พวกเขาด้วย

ฉันสร้างต่อไปนี้ใน regexpr แต่มันไม่ทำอะไรกับsed:

find . -name "*[<>:\\|?]*" | while read -r; do mv "${REPLY}" \
"`echo ${REPLY} | sed "s/([^/]+$)*([<>:\\|?])/-/g"`"; done

คำตอบ:


1

สิ่งที่สะอาดกว่าเช่น:

find ... |
while read -r f; do
    dir=$(dirname "$f")
    old_name=$(basename "$f")
    new_name=$(echo "$old_name" | tr '<>:\\|?' '-')
    mv "$dir/$old_name" "$dir/$new_name"
done
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.