ใน CentOS 4.4 ฉันจะตัดลำดับ escape ออกจากไฟล์ข้อความได้อย่างไร


17

ฉันสามารถใช้คำสั่งใดในการตัดแถบลำดับรหัสสีออกจากไฟล์ข้อความ นึกคิดบางอย่างที่ฉันสามารถผ่านไปได้ หากฉันมีไฟล์ที่มี Rainbow.txt เป็นข้อความสีอะไรจะเกิดขึ้นในช่องว่าง:

cat rainbox.txt | *something* > plain.txt

ฉันกำลังทุบตีกับ CentOS 4.4

คำตอบ:


30

ลอง:

sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"

จากคำตอบ 3 ข้อนี้เป็นคำตอบเดียวที่ใช้ได้
slm

4

cat rainbox.txt | col -b > plain.txt


ทำไมไม่มี upvote นี้ ทางออกเดียวที่เหมาะกับฉัน! และมันก็ง่ายเกินไป!
phunehehe

3
เพราะมันไม่ได้ผลสำหรับฉัน
lzap

6
สิ่งนี้จะกำจัดตัวอักขระการหลบหนีไม่ใช่ข้อโต้แย้ง
อารอน

1

คุณทำไม่ได้เพราะสิ่งที่เป็นลำดับหนีภัยไม่ได้กำหนดไว้อย่างดีโดยทั่วไปคุณต้องรู้ว่าเทอร์มินัลการหลบหนีของคุณออกแบบมาเพื่ออะไร หากคุณต้องการ จำกัด ปัญหาให้ "ตัดลำดับสี ANSI" (ข้อสันนิษฐานที่ค่อนข้างน่าจะเป็นไปได้) สิ่งที่ต้องการ:

sed 's/\o033\[[0-9]*;[0-9]*m//g'

ควรทำเคล็ดลับ


1

ต่อไปนี้จะจับ[Xm , [X; m , [X; Ymและ[X; Y; Zm] (บางส่วนอาจไม่ถูกต้องทางเทคนิค แต่พวกเขาทำงานและได้เห็นในป่า):

sed -r 's|\x1B\[[0-9]{1,2};?(;[0-9]{1,2}){,2}m||g'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.