เร็วที่สุด & วิธีที่สำคัญที่สุดในการแทนที่“ \ r \ n” ด้วย“ \ n” ในไฟล์?


11

ฉันคิดว่าtrเป็นวิธีหลักมากกว่าและอาจเป็นวิธีที่เร็วกว่าในการแทนที่สิ่งต่าง ๆ ในไฟล์ที่กำหนด

อย่างไรก็ตาม tr สามารถแทนที่อักขระในจำนวนเท่ากันเท่านั้น ความหมาย ...

2 ตัวอักษรสามารถถูกแทนที่ด้วย 2 ตัวอักษรซึ่งหมายถึงการแทนที่

\r\nด้วยไม่\nอยู่คำถามtr

ตัวเลือกที่ดีที่สุดต่อไปsedคืออะไร?

เป็นวิธีที่สำคัญที่สุดและเร็วที่สุดในการแทนที่\r\nด้วย\nไฟล์เนื่องจากขาดความสามารถใน TR

ต้องการตัวอย่างถ้าเป็นไปได้


"Most Core" หมายถึงอะไร?
Keith Thompson

คำตอบ:


23

ด้วยsedคุณสามารถทำสิ่งต่อไปนี้

sed 's/\r$//'

วิธีเดียวกันtrคุณสามารถลบได้\r:

tr -d '\r'

แม้ว่าเรื่องนี้จะลบทุกกรณี\r, \nไม่จำเป็นต้องตามมาด้วย


2
ทั้งสองนี้ไม่เหมือนกัน ตัวแรกที่แทนที่ '\ r \ n' ด้วย '\ n' (อย่างมีประสิทธิภาพ) แต่อันที่สองจะลบ '\ r' ทั้งหมดไม่ว่าจะปรากฏที่ใด มันเป็นเรื่องแปลกสำหรับการรับคืนรถที่จะปรากฏในไฟล์ข้อความนอกเหนือจากตอนท้ายของบรรทัด แต่มันสามารถเกิดขึ้นได้
ams

4

หรือใช้ dos2unix

ตัวอย่างเช่น:

$ echo -ne "1\r\n2" |  od -A n -t x1
 31 0d 0a 32
$ echo -ne "1\r\n2" | dos2unix | od -A n -t x1
 31 0a 32

เราสามารถเห็นการแทนที่\r\nด้วย\n


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