มันง่าย ฉันไม่สามารถยืนได้เมื่อมีคนใช้พื้นที่เมื่อตั้งชื่อไฟล์ บางครั้งมันทำลายคำสั่งคอนโซลและทำให้เอาต์พุตของ ls น่าเกลียด
ความท้าทายคือการเขียนโปรแกรม (เฉพาะตัวอักษร ASCII) ซึ่ง
- เปลี่ยนชื่อไฟล์ทั้งหมด (รวมถึงไดเรกทอรี) ในไดเรกทอรีปัจจุบันเป็นรุ่นที่มีการลบช่องว่างหรือแทนที่ด้วย '_'
- ในการชนกันคุณจะต้องผนวกตัวระบุที่ไม่ซ้ำกัน (ขึ้นอยู่กับคุณ)
- ลงไปซ้ำในไดเรกทอรีย่อยทั้งหมด
คุณสามารถสมมติชื่อพา ธ สไตล์ UNIX ใครจะต้องใช้โปรแกรมนี้ในเครื่อง Windows บ้าง?
นี่คือรหัสกอล์ฟโปรแกรมที่สั้นที่สุดชนะ (#ascii ตัวอักษร) เนื่องจากฉันเกลียดช่องว่างมากแต่ละพื้นที่จะต้องถูกนับสองครั้ง
โปรดระบุภาษาคะแนนโปรแกรมและคำอธิบายโดยย่อเกี่ยวกับวิธีการเรียกใช้
โปรแกรมจะต้องรวบรวมและดำเนินการด้วยความพยายามอย่างสมเหตุสมผลบนเครื่อง linux ของฉัน
แก้ไข: ตามที่ Etan ร้องขอโครงสร้างไฟล์สำหรับการทดสอบต่อไปนี้เป็นสคริปต์ที่ฉันใช้เพื่อสร้างแผนผังไฟล์ที่เหมาะสม:
#!/bin/bash
rm -r TestDir
touchfiles()
{
touch my_file
touch my__file
touch "my file"
touch "my file"
touch " my_file "
}
mkdir TestDir
cd TestDir
touchfiles
for dir in "Test Sub" Test_Sub "Te stSub" Te_stSub
do
mkdir "$dir"
cd "$dir"
touchfiles
cd ..
done