• Saving output of a grep into a file with colors


    I need to save the result of a grep command into a file, but I also want the output file to be formatted and keep the colors just like in the terminal.

    Is there a way to do that? Maybe make grep save to a some kind of markup language? If it is not possible, is there another tool that can accomplish this task?

    I am trying to make the search keyword stand out in the output file, exactly like it does in the terminal.

    Depending on what you're wanting to do with the output file, it's possible to add colors to normal text file, because the colors simply come from some special characters. Grep seems to not want to print them when you redirect it to a file, so you need to force it to:

    grep --color=always "stuff" input.txt > output.txt
    

    Now, when you print the file to the console it will be printed with the colors, because Bash interprets those characters as "use this color".

    cat output.txt
    

    However, if you open it in an editor like vim, you'll get some strange characters. For example, when I use the commands

    echo "A sentence. A red sentence. Another sentence." 
      | grep --color=always "A red sentence" > output.txt
    

    The output looks right when I print it using cat but when I open it in vim I get

    A sentence. ^[[01;31m^[[KA red sentence^[[m^[[K. Another sentence.
    

    So if you're wanting to use an editor this probably isn't what you want.

  • 相关阅读:
    广搜 BFS()
    最短路-A
    DFS-C
    codeforces contest
    小技巧
    将博客搬至CSDN
    建树
    codeforces gym102411 Equidistant(图论+乱搞)
    codeforces 1250N wires(简单图论)
    Splay 树
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/4471466.html
Copyright © 2020-2023  润新知