การแปลง DOS / UNIX และในทางกลับกัน

มีซอฟต์แวร์ยูทิลิตี้หลายอย่างเพื่อแปลงไฟล์ข้อความจาก UNIX หรือ Linux เป็นระบบปฏิบัติการ DOS และในทางกลับกัน อย่างไรก็ตามจะช่วยให้ทราบการแปลงด้วยตนเองได้เสมอ ในภาษาการเขียนโปรแกรมเชลล์เช่น UNIX หรือ Linux ไฟล์ข้อความลงเอยด้วยตัวดำเนินการบรรทัดใหม่ "\ n" หรือที่เรียกว่า line feed และรหัส ASCII ของมันคือ 0A ไฟล์ DOS Text สรุปบรรทัดโดย carriage return หรือคีย์รายการ "\ r": รหัส ASCII ของมันคือ 0D บรรทัดใน DOS ลงท้ายด้วย CRLF หรือด้วย "\ r \ n" ในการแปลงข้อความ DOS นี้เป็น UNIX หรือ Linux ให้ลบ "\ r"; คุณสามารถใช้รหัส ASCII ได้หากคุณใช้รุ่น GNU-sed จาก UNIX ไปยัง DOS คุณสามารถเพิ่ม "\ r" หรืออื่น ๆ ใช้สัญลักษณ์ GNU-sed โดยใช้สัญลักษณ์ ASCII

Intro

แม้ว่าจะมีโปรแกรมยูทิลิตี้ (dos2unix และ unix2dos) ที่สามารถทำงานนี้ได้ แต่นี่เป็นคำแนะนำง่ายๆเกี่ยวกับวิธีสร้างคุณสมบัติเหล่านี้ด้วยตนเอง

แปลง DOS เป็น UNIX / UNIX เป็น DOS

ไฟล์ข้อความภายใต้ระบบปฏิบัติการยูนิกซ์สิ้นสุดบรรทัดด้วยสัญลักษณ์ "\ n" (เรียกว่าฟีดบรรทัดและ LF, รหัส ASCII ที่ระบุ = 0A)

ไฟล์ข้อความภายใต้ DOS โดย "บรรทัด" สิ้นสุดบรรทัดด้วยสัญลักษณ์ "\ r" (เรียกว่า Carriage Return และ CR, ASCII 0D ที่บันทึกไว้)

ดังนั้นทุกบรรทัดในไฟล์ DOS จะจบลงด้วยลำดับ CRLF หรือ \ r \ n

แปลงจาก DOS เป็น UNIX

เพียงแค่ลบ "\ r" (carriage return) ที่ท้ายบรรทัด

"\ r" ถูกแทนด้วยสัญลักษณ์ "^ M" ซึ่งได้มาจากลำดับของคีย์ "CTRL-V" + "CTRL-M" ต่อไปนี้

 ไฟล์ 's / ^ M $ //' 

บันทึก:

ด้วยรุ่น GNU-sed (gsed 3.02.80) เราสามารถใช้สัญลักษณ์ ASCII:

 sed 's / \ x0D $ //' ไฟล์ 

การแปลงจาก UNIX เป็น DOS

เพียงแค่ทำตรงกันข้ามกับคำสั่งก่อนหน้าคือ ("^ M" ที่ถูกป้อนในลักษณะเดียวกัน (CTRL-V + CTRL-M)):

 sed 's / $ / ^ M /' ไฟล์ 

บันทึก:

ด้วยรุ่น GNU-sed (gsed 3.02.80) เราสามารถใช้สัญลักษณ์สัญลักษณ์ "\ r":

 sed 's / $ / \ r /' ไฟล์ 
บทความก่อนหน้านี้ บทความถัดไป

เคล็ดลับยอดนิยม