ขออภัยถ้านี่มีคำตอบที่อื่นฉันไม่ทราบวิธีค้นหาปัญหาของฉัน
ฉันใช้การจำลองบางอย่างบนเซิร์ฟเวอร์ linux HPC redhat และรหัสของฉันสำหรับการจัดการโครงสร้างโฟลเดอร์เพื่อบันทึกผลลัพธ์มีข้อผิดพลาดที่โชคร้าย รหัส matlab ของฉันเพื่อสร้างโฟลเดอร์คือ:
folder = [sp.saveLocation, 'run_', sp.run_number, '/'];
ที่sp.run_number
เป็นจำนวนเต็ม ฉันลืมแปลงเป็นสตริง แต่ด้วยเหตุผลบางอย่างที่ทำงานmkdir(folder);
(ใน matlab) ยังคงประสบความสำเร็จ ในความเป็นจริงการจำลองวิ่งโดยไม่มีการผูกปมและข้อมูลถูกบันทึกลงในไดเรกทอรีที่ตรงกัน
ตอนนี้เมื่อโครงสร้างโฟลเดอร์ถูกสอบถาม / พิมพ์ฉันได้รับสถานการณ์ต่อไปนี้:
- เมื่อฉันพยายามแท็บเติมข้อความอัตโนมัติ:
run_ run_^A/ run_^B/ run_^C/ run_^D/ run_^E/ run_^F/ run_^G/ run_^H/ run_^I/
- เมื่อฉันใช้
ls
:run_ run_? run_? run_? run_? run_? run_? run_? run_? run_? run_?
. - เมื่อฉันถ่ายโอนไปยัง mac ของฉันโดยใช้ rsync
--progress
ตัวเลือกจะแสดง:run_\#003/
ฯลฯ ด้วย (ฉันถือว่า) ตัวเลขที่ตรงกับจำนวนเต็มเป็นsp.run_number
เบาะสามหลักดังนั้นการวิ่งครั้งที่ 10 คือrun_\#010/
- เมื่อฉันดูโฟลเดอร์ใน Finder ฉันเห็น
run_ run_ run_ run_ run_ run_ run_ run_ run_ run_?
- ดูคำถามนี้และใช้คำสั่ง
ls | LC_ALL=C sed -n l
ฉันได้รับ:
run_$
run_\001$
run_\002$
run_\003$
run_\004$
run_\005$
run_\006$
run_\a$
run_\b$
run_\t$
run_$
ฉันไม่สามารถจัดการcd
ลงในโฟลเดอร์โดยใช้การรับรองเหล่านี้
ฉันมีหลายพันโฟลเดอร์เหล่านี้ดังนั้นฉันจะต้องแก้ไขด้วยสคริปต์ ตัวเลือกใดเป็นตัวแทนที่ถูกต้องของโฟลเดอร์ ฉันจะอ้างอิงโฟลเดอร์เหล่านี้โดยทางโปรแกรมได้อย่างไรดังนั้นฉันจึงเปลี่ยนชื่อพวกเขาด้วยชื่อที่จัดรูปแบบที่เหมาะสมโดยใช้สคริปต์ทุบตี และฉันคิดว่าเพื่อความอยากรู้อยากเห็นสิ่งนี้เกิดขึ้นได้อย่างไรในนรกในตอนแรก?
run_
แล้วและฉันต้องพิมพ์บางอย่าง
/
และคาดการณ์ล่วงหน้าเฉือน อักขระอื่น ๆ ที่ถูกต้องรวมถึงตัวควบคุม ฉันไม่ทราบว่า matlab จะทำอะไรถ้า sp.run_number เป็น 0 (อาจยกเลิกด้วยข้อผิดพลาดหรือการผลิตrun_
เนื่องจากไบต์ NUL จะยุติสตริงชื่อไดเรกทอรี) แน่นอนว่านี่จะเป็นปัญหาสำหรับค่า 16- บิต (หรือสูงกว่า) ที่มี NUL byte อยู่และจะแตกต่างกันไปตาม endian-ness ของระบบที่ใช้งาน matlab
^A
ไม่ได้^
ตามตัวอักษรA
แต่ Ctrl-A (คุณสามารถพิมพ์โดยใช้ Ctrl-V Ctrl-A เนื่องจาก Ctrl-A โดยทั่วไปจะเป็นทางลัดสำหรับเชลล์)