มีวิธีที่จะทำให้ colorization ของข้อความใด ๆ ที่ส่งผ่านท่อ|
ไปhead
, tail
, less
ฯลฯ ?
มีวิธีที่จะทำให้ colorization ของข้อความใด ๆ ที่ส่งผ่านท่อ|
ไปhead
, tail
, less
ฯลฯ ?
คำตอบ:
ฉันคิดว่าคุณกำลังไปป์ไลน์ls
และต้องการรักษารหัสสีของเทอร์มินัล คุณสามารถพูดได้ls --color=always
(แทนที่จะเป็นค่าเริ่มต้น--color=auto
) ซึ่งจะรักษารหัสไว้ แต่นั่นจะไม่รับประกันว่าสิ่งที่คุณกำลังจะรู้วิธีทำความเข้าใจ
หากคุณใช้glark
แทนgrep
มันจะพยายามแสดงด้วยสี
หากคุณใช้less
กับ-R
มันจะพยายามที่จะแสดงด้วยสี
git
ฉันท่อจาก ฉันพบว่ามันมีการกำหนดค่าที่คล้ายกัน (เช่น. git config color.diff always
) ที่ช่วยให้มีสี
git diff
เอาต์พุตเป็นอินพุตเพราะมันจะส่งออกรหัสการหลบหนี ANSI เสมอ
grep "string" file.txt | head
เพื่อให้แน่ใจว่าผลลัพธ์จาก grep เป็นสีฉันเพิ่งเปลี่ยนสิ่งนี้เป็นgrep "string" file.txt --color=always | head
ขึ้นอยู่กับโปรแกรมที่สร้างเอาต์พุตในไพพ์
head
,, tail
ฯลฯ ไม่ใช่รายการที่ลบสี แต่เป็นโปรแกรมที่สร้างข้อมูลที่มักจะตรวจสอบว่าเอาต์พุตกำลังไปที่คอนโซล (สี) ไฟล์หรือไพพ์ (ไม่ใช่สี)
ฉันพบSU Q&A อีกอันที่แสดงวิธีการโกหกไปยัง piping program เพื่อเอาท์พุทราวกับว่าพวกเขากำลังส่งออกไปยัง console (การจำลองคอนโซลด้วยunbuffer
)
color=auto
โหมด (เพื่อให้โปรแกรมคิดว่าเอาต์พุตไปที่คอนโซลแทนที่จะเป็นไพพ์)?
head
, tail
ฯลฯ , ตรวจพบว่ากำลังถูกไพพ์ไปยังโปรแกรมอื่น (เพื่อให้สามารถสร้างข้อมูลโดยไม่มีสี, ฯลฯ ).
head
,tail
ฯลฯ ไม่ได้คนเอาสีมันเป็นโปรแกรมสร้างข้อมูลที่มักจะตรวจสอบว่าการส่งออกเป็นไปคอนโซล (สี), ไฟล์หรือท่อ (ไม่ใช่สี)