Nếu tôi hiểu chính xác bạn muốn lưu một đầu ra thiết bị đầu cuối trong một tệp văn bản, phải không? Nhưng bạn muốn nó được định dạng với màu sắc. Nếu đó là trường hợp, đây là ý tưởng của tôi:
Làm nổi bật đầu ra tự động
Như bạn có thể biết, nếu bạn chụp một đầu ra grep vào một tệp văn bản, chính xác bởi vì đó là một tệp văn bản, nó không thể được tạo thành. Vì vậy, theo tôi biết, bạn không thể làm điều đó một cách dễ dàng.
Mặc dù vậy, có một cách giải quyết đơn giản, bao gồm việc nhận ra trình soạn thảo văn bản của bạn loại tệp đang mở. Ví dụ: giả sử rằng đầu ra grep của bạn có một số thành phần bash, vì vậy các điểm nổi bật bash hoạt động cho bạn (nhân tiện, đây thường là những màu mà bạn nhìn thấy trong một đầu ra có màu trong thiết bị đầu cuối). Vì vậy, mẹo là lưu văn bản đầu ra trong một tệp có phần mở rộng thích hợp. Thay vì làm một cái gì đó như:
ls | grep something > output
bạn có thể đi cho
ls | grep something > output.sh
Điều này sẽ làm cho gedit (hoặc bất kỳ trình soạn thảo văn bản tử tế nào) tự động nhận ra rằng bạn đang nói về mã bash và sẽ làm nổi bật nó theo. Bạn không cần tô màu đầu ra, chương trình sẽ làm điều đó cho bạn nếu nó nhận ra loại mã mà nó đang mở. Nếu bạn đang làm việc với các loại định dạng khác, chỉ cần điều chỉnh tiện ích mở rộng để điều chỉnh tốt hơn cho những gì bạn đang sử dụng (ví dụ> output.xml,> output.html,> output.py ... vv). Chúc may mắn! :)
Làm nổi bật một số từ trong tệp đầu ra
Vì vậy, nếu tôi có nó, bạn muốn làm nổi bật những từ bạn đã tìm kiếm. Một lần nữa, điều đó không thể được thực hiện trong một tệp văn bản đơn giản chỉ vì là một văn bản thuần túy. Tuy nhiên, bạn có thể thêm một số định dạng cho nó theo cách rất dễ dàng như sử dụng một số mã html. Điều này sẽ biến đổi đầu ra của bạn trong một mã html và khi bạn mở nó bằng một chương trình có thể diễn giải html (libreoffice reader, firefox và 10000 etceteras), bạn sẽ thấy một số từ được tô đậm.
Để làm như vậy, giả sử đây là grep của bạn, được xuất sang html:
ls | grep keytext > output.html
Và bây giờ bạn muốn làm nổi bật keytext trong đầu ra của bạn. Bạn có thể sử dụng sed để làm điều đó, như:
sed -i 's/keytext/<font color="red">keytext<\/font>/g' output.html
Và violà, bây giờ keytext của bạn được tô màu đỏ.