แสดงอักขระ \ n เป็นบรรทัดใหม่เมื่อใช้ส่วนท้ายหรือไม่


17

ฉันมีไฟล์ที่พยายามอ่านโดยใช้ tail -f ฉันสงสัยว่าถ้ามีวิธีที่จะให้เทอร์มินัลเอาท์พุตมีการขึ้นบรรทัดใหม่แทนอักขระ \ n


1
ตามกฎแล้ว tail -f จะแสดงตัวแบ่งบรรทัดเป็นตัวแบ่งบรรทัด คุณอาจมีปัญหากับการตั้งค่าคอนโซลของคุณถ้านั่นคือสิ่งที่คุณเห็น
Jon Lasser

1
หรือเขากำลังปรับแต่งไฟล์ที่มีตัวอักษร \ n อยู่จริง บางทีการแบ่งบรรทัดถูกแปลงเป็น "\ n" ตามตัวอักษรก่อนที่จะเขียนลงในไฟล์
Josh

คำตอบ:


25
tail -f file | sed 's/\\n/\n/g'

2
ฉันต้องการเพิ่มที่ฉันพบว่าฉันต้องการจริง ๆ แล้วต้องใส่ตัวแบ่งบรรทัดในคำสั่ง sed ของฉันหลังจากสแลชเพื่อที่จะทำให้งานนี้เป็นเช่น:~$ tail -f /var/log/apache2/error_log | sed 's/\\n/\ > /g'
Jon z

ไม่มีใครรู้วิธีที่จะบรรลุสิ่งเดียวกันสำหรับ multitail หรือไม่? นี่คือคำถาม: unix.stackexchange.com/questions/239774/…
fraxture

ฉันไม่สามารถทำงานเป็นนามแฝงใน. bashrc ของฉันได้
Kdansky

1
@Kdansky: คุณไม่ได้แสดงว่าคุณกำหนดนามแฝงหรือปัญหาประเภทใดที่คุณมีดังนั้นฉันสามารถเดาได้เท่านั้น ปัญหาหนึ่งที่คุณอาจมีคือการอ้าง alias forward="tail -f file | sed 's/\\\n/\n/g'"ทับขวาเสริมอาจช่วย หากคุณต้องการระบุชื่อไฟล์เป็นอาร์กิวเมนต์คุณควรใช้ฟังก์ชั่นแทนนามแฝง:forward () { tail -f "$@" | sed 's/\\n/\n/g'; }
หยุดชั่วคราวจนกว่าจะมีประกาศ

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