ตัวเลือก -d สำหรับการแยกผิดกฎหมายใน OS X 10.9


15

ฉันมี bash script ที่ทำงานบน Ubuntu แต่สำหรับ OS X 10.9 ฉันได้รับข้อผิดพลาดสำหรับคำสั่ง split:

split -b 1000000 -a 3 -d $F $F && rm $F || { echo "Error: 'split' command not installed" ; exit 1 ; }

split: illegal option -- d .

ตามหน้าคนแยก-dคือ

   -d, --numeric-suffixes
          use numeric suffixes instead of alphabetic

มีวิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่?

คำตอบ:


30

รุ่น GNU ของการแยกความแตกต่างกันกับรุ่น OS X ของการแยก

OS X ใช้ BSD Unix และ Linux (มักเรียกว่า GNU / Linux) ใช้ชุดเครื่องมือ GNU

การแยกเวอร์ชั่นของ GNU เป็นส่วนหนึ่งของคอร์ตูลและข่าวดีก็คือมีให้ใน MacPorts หากคุณมีการติดตั้งMacPortsคุณสามารถติดตั้งพอร์ตcoreutilsโดยใช้คำสั่ง:

sudo port install coreutils

นี้จะติดตั้งสาธารณูปโภค GNU หลัก (รวมทั้งแยก) ที่มีคำนำหน้าเพื่อให้คุณเรียกแยกใช้คำสั่งggsplit


4
ในขณะที่ฉันรู้ว่าเป็นไปได้ที่จะติดตั้ง coreutils ด้วยชื่อเริ่มต้นฉันจะไม่แนะนำเพราะสคริปต์ทั้งหมดที่เขียนขึ้นสำหรับ OS X ถือว่าเครื่องมือ BSD มีชื่อ 'ดั้งเดิม'
Scott Earle

8
coreutils ยังมีให้บริการผ่าน homebrew (เช่นเดียวกับคำนำหน้า 'g'):brew install coreutils
Karl Bartel

@ScottEarle คุณไม่ควรเขียน bash สำหรับ OSX ไม่ว่าคุณจะสามารถหลีกเลี่ยงปัญหานี้ได้ด้วยการใช้เชลล์สำรองบน ​​iTerm และทำการโหลดไฟล์ bash_aliases แยกจากกันโดยปล่อยให้ระบบอยู่คนเดียว
Ray Foss
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.