ถ้าฉันเข้าใจถูกต้องคุณต้องการบันทึกผลลัพธ์เทอร์มินัลในไฟล์ข้อความใช่ไหม แต่คุณต้องการให้มีการจัดรูปแบบด้วยสี หากเป็นกรณีนี้เป็นความคิดของฉัน:
ไฮไลต์เอาท์พุทโดยอัตโนมัติ
อย่างที่คุณอาจทราบว่าถ้าคุณจับเอาท์พุท grep ลงในไฟล์ข้อความเพราะมันเป็นไฟล์ข้อความมันไม่สามารถจัดรูปแบบได้ ดังนั้นเท่าที่ฉันรู้คุณไม่สามารถทำได้ในวิธีที่ง่าย
ทั้งๆที่มีวิธีแก้ปัญหาง่าย ๆ ประกอบไปด้วยการทำให้ตระหนักถึงการแก้ไขข้อความของคุณสิ่งที่ชนิดของไฟล์ที่จะเปิด ตัวอย่างเช่นสมมติว่าเอาต์พุต grep ของคุณมีองค์ประกอบทุบตีบางส่วนดังนั้นไฮไลต์ทุบตีทำงานได้สำหรับคุณ (โดยวิธีการเหล่านี้มักเป็นสีที่คุณเห็นในเอาต์พุตสีในเทอร์มินัล) ดังนั้นเคล็ดลับคือการบันทึกผลลัพธ์ข้อความในไฟล์ที่มีนามสกุลที่เหมาะสม แทนที่จะทำสิ่งที่ชอบ:
ls | grep something > output
คุณอาจไปเพื่อ
ls | grep something > output.sh
ซึ่งจะทำให้ gedit (หรือโปรแกรมแก้ไขข้อความที่เหมาะสม) โดยอัตโนมัติรับรู้ว่าคุณกำลังพูดถึงรหัสทุบตีและจะเน้นมันตาม คุณไม่จำเป็นต้องระบายสีเอาท์พุทโปรแกรมจะทำเพื่อคุณถ้ามันรับรู้ถึงประเภทของรหัสที่กำลังเปิดอยู่ หากคุณทำงานกับรูปแบบประเภทอื่น ๆ ให้ปรับส่วนขยายให้เหมาะกับสิ่งที่คุณทำใน greping (เช่น> output.xml,> output.html,> output.py ... ฯลฯ ) โชคดี! :)
ไฮไลต์คำบางคำในไฟล์เอาต์พุต
ดังนั้นถ้าฉันเข้าใจคุณต้องการเน้นคำที่คุณค้นหา อีกครั้งที่ไม่สามารถทำได้ในไฟล์ข้อความธรรมดาเพียงเพราะเป็นข้อความธรรมดา อย่างไรก็ตามคุณสามารถเพิ่มรูปแบบบางรูปแบบในวิธีที่ง่ายมากเช่นการใช้การเข้ารหัส HTML สิ่งนี้จะแปลงผลลัพธ์ของคุณในรหัส html และเมื่อคุณเปิดมันด้วยโปรแกรมที่สามารถตีความ html (นักเขียน libreoffice, firefox และ 10,000 etceteras) คุณจะเห็นคำบางคำที่เน้น
ในการทำเช่นนี้สมมติว่าเป็น grep ของคุณส่งออกเป็น html:
ls | grep keytext > output.html
และตอนนี้คุณต้องการเน้นข้อความสำคัญในผลลัพธ์ของคุณ คุณสามารถใช้sedเพื่อทำเช่น:
sed -i 's/keytext/<font color="red">keytext<\/font>/g' output.html
และviolàทีนี้ข้อความของคุณก็จะเป็นสีแดง