วิธีใช้ linux bash“ sort” คำสั่งในสคริปต์พกพา?


1

ฉันกำลังเขียนสคริปต์ทุบตีและฉันต้องการทำให้เป็นแบบพกพาเพื่อให้ได้ผลลัพธ์เดียวกันในคอมพิวเตอร์เครื่องอื่น

จากคำถามนี้ฉันได้เรียนรู้การตั้งค่าระบบเช่นการตั้งค่าภาษาและตัวแปรอื่น ๆ อาจส่งผลต่อผลลัพธ์ของคำสั่ง sort เดียวกันในไฟล์อินพุตและอาร์กิวเมนต์เดียวกัน

ดังนั้นคำถามของฉันคือวิธีการใช้การเรียงลำดับและเพื่อให้แน่ใจว่าผลลัพธ์ที่คาดหวังในระบบอื่น ๆ ? ฉันควรพิจารณาตัวแปรระบบใด การใส่LC_ALL=Cb แก้ปัญหาทั้งหมดได้หรือไม่?


ฉันมีปัญหาที่คล้ายกันบางทีนี่อาจช่วยคุณได้ stackoverflow.com/questions/10486736/…
maths

1
อ่านsortman page สำหรับแต่ละระบบที่ต้องการ สำหรับระบบ GNU (เช่น Linux) สามารถหารายละเอียดเพิ่มเติมได้info sortโดยเฉพาะดูเชิงอรรถ
เกล็นแจ็

คำตอบ:


1

ใช่LC_ALL=Cจะแก้ปัญหาการพกพาของคุณ (มันจะทำงานในทุกระบบเหมือนกัน)

หมายเหตุ แต่นั่นไม่ได้หมายความว่ามันจะทำสิ่งที่คุณต้องการ โลแคล "C" จะเรียงลำดับตามค่าไบต์ สิ่งใดดีถ้าข้อมูลทั้งหมดของคุณเป็น ASCII แท้ อย่างไรก็ตามหากข้อมูลของคุณอาจมีชุดอักขระอื่น ๆ (เช่นภาษาอื่น ๆ ในชุด ISO-8859- *, KOI-R หรือฟ้าสวรรค์ห้ามใช้ชุดอักขระแบบมัลติไบต์เช่น UTF-16, UTF-8 เป็นต้น) มันจะพังอย่างน่ากลัว

แต่มันก็ยังพกพาสะดวกเพราะมันจะแตกหักแบบเดียวกับทุกแพลตฟอร์ม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.